From c370c55b50a309272fa2b6c2507432fe360f52c9 Mon Sep 17 00:00:00 2001
From: erbel <johannes.erbel@cs.uni-goettingen.de>
Date: Tue, 2 Nov 2021 12:49:27 +0100
Subject: [PATCH] Update Scaling Engine for Spark Cloud scenario

---
 build.gradle                                  |   2 +-
 .../java/de/ugoe/cs/rwm/mocci/AbsScaler.java  |   2 ++
 .../java/de/ugoe/cs/rwm/mocci/DownScaler.java |  19 +++++++++++++-
 src/main/java/de/ugoe/cs/rwm/mocci/MAPE.java  |  24 ++++++++++--------
 .../cs/rwm/mocci/RegistryAndLoggerSetup.java  |   2 +-
 .../java/de/ugoe/cs/rwm/mocci/UpScaler.java   |   3 +--
 .../{UpScalerSpark.java => UpScalerSim.java}  |  22 ++++++++--------
 ...rg.modmacao.ansible_1.0.0.201808232105.jar | Bin 34886 -> 0 bytes
 8 files changed, 47 insertions(+), 27 deletions(-)
 rename src/main/java/de/ugoe/cs/rwm/mocci/{UpScalerSpark.java => UpScalerSim.java} (98%)
 delete mode 100755 src/test/resources/martserver-plugins/org.modmacao.ansible_1.0.0.201808232105.jar

diff --git a/build.gradle b/build.gradle
index 89c17f6..e232ada 100644
--- a/build.gradle
+++ b/build.gradle
@@ -118,7 +118,7 @@ dependencies {
     compile group: 'org.modmacao.occi', name: 'platform', version: '1.0.0'
     compile group: 'org.modmacao.openstack', name: 'runtime', version: '1.0.1'
     compile group: 'org.modmacao.openstack.swe', name: 'runtime', version: '1.0.0'
-    compile group: 'org.modmacao', name: 'ansible', version: '1.0.0'
+    compile group: 'org.modmacao', name: 'ansible', version: '1.0.1'
     compile group: 'org.eclipse.cmf.occi', name: 'docker', version: '1.0.0'
 
 
diff --git a/src/main/java/de/ugoe/cs/rwm/mocci/AbsScaler.java b/src/main/java/de/ugoe/cs/rwm/mocci/AbsScaler.java
index 0e81ad2..f19fd18 100644
--- a/src/main/java/de/ugoe/cs/rwm/mocci/AbsScaler.java
+++ b/src/main/java/de/ugoe/cs/rwm/mocci/AbsScaler.java
@@ -19,6 +19,7 @@ import org.eclipse.cmf.occi.core.impl.OCCIFactoryImpl;
 import org.eclipse.cmf.occi.infrastructure.impl.InfrastructureFactoryImpl;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.resource.Resource;
+import org.modmacao.ansibleconfiguration.impl.AnsibleconfigurationFactoryImpl;
 import org.modmacao.occi.platform.impl.PlatformFactoryImpl;
 import org.modmacao.placement.impl.PlacementFactoryImpl;
 
@@ -33,6 +34,7 @@ public abstract class AbsScaler {
 	protected PlatformFactoryImpl pFactory = new PlatformFactoryImpl();
 	protected PlacementFactoryImpl placeFactory = new PlacementFactoryImpl();
 	protected OssweruntimeFactoryImpl osFactory = new OssweruntimeFactoryImpl();
+	protected AnsibleconfigurationFactoryImpl aFactory = new AnsibleconfigurationFactoryImpl();
 	protected Resource runtimeModel;
 	protected Connector conn;
 	protected Path runtimePath;
diff --git a/src/main/java/de/ugoe/cs/rwm/mocci/DownScaler.java b/src/main/java/de/ugoe/cs/rwm/mocci/DownScaler.java
index aea7d1e..b9fa4a2 100644
--- a/src/main/java/de/ugoe/cs/rwm/mocci/DownScaler.java
+++ b/src/main/java/de/ugoe/cs/rwm/mocci/DownScaler.java
@@ -28,6 +28,7 @@ import org.modmacao.occi.platform.Component;
 import de.ugoe.cs.rwm.docci.ModelUtility;
 import de.ugoe.cs.rwm.docci.connector.Connector;
 import monitoring.Monitorableproperty;
+import monitoring.Sensor;
 
 public class DownScaler extends AbsScaler {
 
@@ -59,7 +60,9 @@ public class DownScaler extends AbsScaler {
 							if (atLeastTwoWorkers(config)) {
 								System.out.println("      VM with None CPU utilization found: " + comp.getId());
 								addConnectedLinksAndComponents(comp);
+								addConnectedLinksAndComponents(monProp.getSource());
 								resourcesToDelete.add(comp);
+								resourcesToDelete.add(monProp.getSource());
 								System.out.println(
 										"      Delete Entities Around: " + comp.getTitle() + " (" + comp.getId() + ")");
 								downScale = true;
@@ -82,8 +85,12 @@ public class DownScaler extends AbsScaler {
 		config.getResources().removeAll(resourcesToDelete);
 
 		for (org.eclipse.cmf.occi.core.Resource res : resourcesToDelete) {
+			for (Link l : res.getLinks()) {
+				EcoreUtil.delete(l);
+			}
 			EcoreUtil.delete(res);
 		}
+
 		Resource rM = runtimeModel;
 		MAPE.newComp = null;
 		CachedResourceSet.getCache().clear();
@@ -119,7 +126,7 @@ public class DownScaler extends AbsScaler {
 		return null;
 	}
 
-	private void addConnectedLinksAndComponents(Compute comp) {
+	private void addConnectedLinksAndComponents(org.eclipse.cmf.occi.core.Resource comp) {
 		linksToDelete.addAll(comp.getLinks());
 		linksToDelete.addAll(comp.getRlinks());
 
@@ -152,6 +159,16 @@ public class DownScaler extends AbsScaler {
 				 */
 			}
 		}
+
+		if (comp instanceof Sensor) {
+			for (Link l : comp.getLinks()) {
+				if (l.getTarget() instanceof Component) {
+					resourcesToDelete.add(l.getTarget());
+					linksToDelete.addAll(l.getTarget().getLinks());
+					linksToDelete.addAll(l.getTarget().getRlinks());
+				}
+			}
+		}
 	}
 
 }
diff --git a/src/main/java/de/ugoe/cs/rwm/mocci/MAPE.java b/src/main/java/de/ugoe/cs/rwm/mocci/MAPE.java
index 91d086d..f40b27e 100644
--- a/src/main/java/de/ugoe/cs/rwm/mocci/MAPE.java
+++ b/src/main/java/de/ugoe/cs/rwm/mocci/MAPE.java
@@ -16,13 +16,13 @@ import java.nio.file.Paths;
 import java.util.Scanner;
 
 import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
 import org.json.JSONArray;
 import org.modmacao.occi.platform.Component;
 
 import de.ugoe.cs.rwm.docci.MartDeployer;
 import de.ugoe.cs.rwm.docci.ModelUtility;
 import de.ugoe.cs.rwm.docci.connector.Connector;
-import de.ugoe.cs.rwm.docci.connector.LocalhostConnector;
 import de.ugoe.cs.rwm.docci.connector.MartConnector;
 import de.ugoe.cs.rwm.docci.executor.MartExecutor;
 import de.ugoe.cs.rwm.tocci.occi2openstack.OCCI2OPENSTACKTransformator;
@@ -35,9 +35,8 @@ import de.ugoe.cs.rwm.tocci.occi2openstack.OCCI2OPENSTACKTransformator;
  */
 public class MAPE {
 	protected static final Path RUNTIMEPATH = Paths.get(System.getProperty("user.home") + "/.rwm/runtime.occic");
-	static Connector conn = new LocalhostConnector("localhost", 8080, "ubuntu");
-	// static Connector conn = new MartConnector("192.168.35.45", 8080, "ubuntu",
-	// "~/key.pem");
+	// static Connector conn = new LocalhostConnector("localhost", 8080, "ubuntu");
+	static Connector conn = new MartConnector("192.168.35.45", 8080, "ubuntu", "~/key.pem");
 	static MartExecutor executor = new MartExecutor(conn);
 	static Resource runtimeModel;
 	static Component newComp;
@@ -112,10 +111,11 @@ public class MAPE {
 		if (noneCPUs == 0 && critCPUs > allCPUs / 2 && allCPUs <= 6) {
 			System.out.println("Analyze: Critical State Detected");
 			return "upScale";
-		} else {
+		} else if (allCPUs > 2) {
 			System.out.println("Analyze: Non Critical State Detected");
 			return "downScale";
 		}
+		return "noScale";
 	}
 
 	public static Resource plan(String analysis) {
@@ -129,7 +129,7 @@ public class MAPE {
 			DownScaler downscaler = new DownScaler(conn, RUNTIMEPATH);
 			return downscaler.downScaleNodes();
 		}
-		return null;
+		return ModelUtility.loadOCCIintoEMFResource(RUNTIMEPATH);
 
 	}
 
@@ -138,18 +138,22 @@ public class MAPE {
 			System.out.println("Execute: Skipped as no scaling planned");
 		}
 		System.out.println("Execute: Deploying adjusted Model");
-		Path occiPath = RUNTIMEPATH;
 
+		Path occiPath = RUNTIMEPATH;
 		OCCI2OPENSTACKTransformator trans2 = new OCCI2OPENSTACKTransformator();
 		trans2.setTransformationProperties(RegistryAndLoggerSetup.manNWRuntimeId, RegistryAndLoggerSetup.sshKey,
 				RegistryAndLoggerSetup.userData, RegistryAndLoggerSetup.manNWid);
 
-		// trans2.transform(runtimeModel, occiPath);
-		// runtimeModel = ModelUtility.loadOCCIintoEMFResource(occiPath);
+		try {
+			trans2.transform(runtimeModel, occiPath);
+		} catch (EolRuntimeException e) {
+			e.printStackTrace();
+		}
+		runtimeModel = ModelUtility.loadOCCIintoEMFResource(occiPath);
 
 		MartDeployer deployer;
 		if (conn instanceof MartConnector) {
-			deployer = new MartDeployer(conn, 100000);
+			deployer = new MartDeployer(conn, 1000);
 		} else {
 			deployer = new MartDeployer(conn);
 		}
diff --git a/src/main/java/de/ugoe/cs/rwm/mocci/RegistryAndLoggerSetup.java b/src/main/java/de/ugoe/cs/rwm/mocci/RegistryAndLoggerSetup.java
index 3d80c67..456ee04 100644
--- a/src/main/java/de/ugoe/cs/rwm/mocci/RegistryAndLoggerSetup.java
+++ b/src/main/java/de/ugoe/cs/rwm/mocci/RegistryAndLoggerSetup.java
@@ -44,7 +44,7 @@ public class RegistryAndLoggerSetup {
 	static String manNWid = "urn:uuid:29d78078-fb4c-47aa-a9af-b8aaf3339590";
 	static String manNWRuntimeId = "75a4639e-9ce7-4058-b859-8a711b0e2e7b";
 	static String sshKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6H7Ydi45BTHid4qNppGAi5mzjbnZgt7bi6xLGmZG9CiLmhMsxOuk3Z05Nn+pmoN98qS0eY8S240PPk5VOlYqBY0vdRAwrZSHHaLdMp6I7ARNrI2KraYduweqz7ZQxPXQfwIeYx2HKQxEF2r+4//Fo4WfgdBkLuulvl/Gw3TUzJNQHvgpaiNo9+PI5CZydHnZbjUkRikS12pT+CbNKj+0QKeQztbCd41aKxDv5H0DjltVRcpPppv4dmiU/zoCAIngWLO1PPgfYWyze8Z9IoyBT7Qdg30U91TYZBuxzXR5lq7Fh64y/IZ/SjdOdSIvIuDjtmJDULRdLJzrvubrKY+YH Generated-by-Nova";
-	static String userData = "I2Nsb3VkLWNvbmZpZwoKIyBVcGdyYWRlIHRoZSBpbnN0YW5jZSBvbiBmaXJzdCBib290CiMgKGllIHJ1biBhcHQtZ2V0IHVwZ3JhZGUpCiMKIyBEZWZhdWx0OiBmYWxzZQojIEFsaWFzZXM6IGFwdF91cGdyYWRlCnBhY2thZ2VfdXBncmFkZTogdHJ1ZQoKcGFja2FnZXM6CiAtIHB5dGhvbgoKd3JpdGVfZmlsZXM6CiAgLSBwYXRoOiAvZXRjL25ldHdvcmsvaW50ZXJmYWNlcy5kLzUwLWNsb3VkLWluaXQuY2ZnCiAgICBjb250ZW50OiB8CiAgICAgIGF1dG8gbG8KICAgICAgaWZhY2UgbG8gaW5ldCBsb29wYmFjawogICAgICAKICAgICAgYXV0byBlbnMwCiAgICAgIGFsbG93LWhvdHBsdWcgZW5zMAogICAgICBpZmFjZSBlbnMwIGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnMxCiAgICAgIGFsbG93LWhvdHBsdWcgZW5zMQogICAgICBpZmFjZSBlbnMxIGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnMyCiAgICAgIGFsbG93LWhvdHBsdWcgZW5zMgogICAgICBpZmFjZSBlbnMyIGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnMzCiAgICAgIGFsbG93LWhvdHBsdWcgZW5zMwogICAgICBpZmFjZSBlbnMzIGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnM0CiAgICAgIGFsbG93LWhvdHBsdWcgZW5zNAogICAgICBpZmFjZSBlbnM0IGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnM1CiAgICAgIGFsbG93LWhvdHBsdWcgZW5zNQogICAgICBpZmFjZSBlbnM1IGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnM2CiAgICAgIGFsbG93LWhvdHBsdWcgZW5zNgogICAgICBpZmFjZSBlbnM2IGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnM3CiAgICAgIGFsbG93LWhvdHBsdWcgZW5zNwogICAgICBpZmFjZSBlbnM3IGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnM4CiAgICAgIGFsbG93LWhvdHBsdWcgZW5zOAogICAgICBpZmFjZSBlbnM4IGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnM5CiAgICAgIGFsbG93LWhvdHBsdWcgZW5zOQogICAgICBpZmFjZSBlbnM5IGluZXQgZGhjcAogICAgICAKICAgICAgYXV0byBlbnMxMAogICAgICBhbGxvdy1ob3RwbHVnIGVuczEwCiAgICAgIGlmYWNlIGVuczEwIGluZXQgZGhjcAoKIyMj";
+	static String userData = "I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAgLSBbIHN5c3RlbWN0bCwgc3RvcCwgYXB0LWRhaWx5LnNlcnZpY2UgXQogIC0gWyBzeXN0ZW1jdGwsIGtpbGwsIC0ta2lsbC13aG89YWxsLCBhcHQtZGFpbHkuc2VydmljZSBd";
 
 	public static void setup() {
 		loggerSetup();
diff --git a/src/main/java/de/ugoe/cs/rwm/mocci/UpScaler.java b/src/main/java/de/ugoe/cs/rwm/mocci/UpScaler.java
index 2297525..5ea1c19 100644
--- a/src/main/java/de/ugoe/cs/rwm/mocci/UpScaler.java
+++ b/src/main/java/de/ugoe/cs/rwm/mocci/UpScaler.java
@@ -17,7 +17,6 @@ import org.eclipse.cmf.occi.core.AttributeState;
 import org.eclipse.cmf.occi.core.Configuration;
 import org.eclipse.cmf.occi.core.Mixin;
 import org.eclipse.cmf.occi.core.MixinBase;
-import org.eclipse.cmf.occi.docker.DockerFactory;
 import org.eclipse.cmf.occi.infrastructure.Compute;
 import org.eclipse.cmf.occi.infrastructure.ComputeStatus;
 import org.eclipse.cmf.occi.infrastructure.Ipnetworkinterface;
@@ -60,7 +59,7 @@ public class UpScaler extends AbsScaler {
 		System.out.println("         Adding Compute Node to Model");
 		Compute comp = iFactory.createCompute();
 		comp.setOcciComputeState(ComputeStatus.ACTIVE);
-		comp.setKind(DockerFactory.eINSTANCE.createContainer().getKind());
+		// comp.setKind(DockerFactory.eINSTANCE.createContainer().getKind());
 
 		AttributeState state = factory.createAttributeState();
 		state.setName("occi.compute.state");
diff --git a/src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSpark.java b/src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSim.java
similarity index 98%
rename from src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSpark.java
rename to src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSim.java
index 5cf2c45..5cdd700 100644
--- a/src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSpark.java
+++ b/src/main/java/de/ugoe/cs/rwm/mocci/UpScalerSim.java
@@ -11,8 +11,13 @@
 
 package de.ugoe.cs.rwm.mocci;
 
-import java.nio.file.Path;
-
+import de.ugoe.cs.rwm.docci.ModelUtility;
+import de.ugoe.cs.rwm.docci.connector.Connector;
+import de.ugoe.cs.rwm.domain.workload.Componentsim;
+import de.ugoe.cs.rwm.domain.workload.Computesim;
+import de.ugoe.cs.rwm.domain.workload.Sensorsim;
+import de.ugoe.cs.rwm.domain.workload.WorkloadFactory;
+import monitoring.*;
 import org.eclipse.cmf.occi.core.AttributeState;
 import org.eclipse.cmf.occi.core.Configuration;
 import org.eclipse.cmf.occi.core.Mixin;
@@ -27,17 +32,11 @@ import org.modmacao.occi.platform.Component;
 import org.modmacao.occi.platform.Componentlink;
 import org.modmacao.placement.Placementlink;
 
-import de.ugoe.cs.rwm.docci.ModelUtility;
-import de.ugoe.cs.rwm.docci.connector.Connector;
-import de.ugoe.cs.rwm.domain.workload.Componentsim;
-import de.ugoe.cs.rwm.domain.workload.Computesim;
-import de.ugoe.cs.rwm.domain.workload.Sensorsim;
-import de.ugoe.cs.rwm.domain.workload.WorkloadFactory;
-import monitoring.*;
+import java.nio.file.Path;
 
-public class UpScalerSpark extends AbsScaler {
+public class UpScalerSim extends AbsScaler {
 
-	public UpScalerSpark(Connector conn, Path runtimePath) {
+	public UpScalerSim(Connector conn, Path runtimePath) {
 		this.conn = conn;
 		this.runtimePath = runtimePath;
 	}
@@ -65,7 +64,6 @@ public class UpScalerSpark extends AbsScaler {
 		Compute comp = iFactory.createCompute();
 		comp.setOcciComputeState(ComputeStatus.ACTIVE);
 		Container cont = DockerFactory.eINSTANCE.createContainer();
-
 		comp.setKind(cont.getKind());
 
 		AttributeState state = factory.createAttributeState();
diff --git a/src/test/resources/martserver-plugins/org.modmacao.ansible_1.0.0.201808232105.jar b/src/test/resources/martserver-plugins/org.modmacao.ansible_1.0.0.201808232105.jar
deleted file mode 100755
index d20d0f7d68b587bc9e24063861fdb68262ecf9a7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 34886
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
Pfy&{5fP7tk`Op6cL*H-c

-- 
GitLab