Skip to content
Snippets Groups Projects
Commit a5b4efe9 authored by erbel's avatar erbel
Browse files

Added example deployments

parent b5e15143
No related branches found
No related tags found
No related merge requests found
Pipeline #82973 failed
......@@ -63,6 +63,7 @@ dependencies {
//compile group: 'de.ugoe.cs.rwm.pcg', name: 'model', version: '1.0.0'
compile group: 'de.ugoe.cs.rwm', name: 'tocci', version: '1.0.0'
compile group: 'de.ugoe.cs.rwm', name: 'cocci', version: '1.0.0'
compile group: 'de.ugoe.cs.rwm', name: 'docci', version: '1.0.0', changing: true
compile group: 'de.ugoe.cs.rwm.wocci', name: 'model', version: '1.0.0'
//modmacao
compile group: 'org.modmacao', name: 'core', version: '1.0.0'
......@@ -88,13 +89,18 @@ dependencies {
//testImplementation 'junit:junit:4.12'
}
configurations.all {
// Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
javadoc {
source = sourceSets.main.allJava
classpath = configurations.compile
failOnError = true
}
test {
//exclude 'de/ugoe/cs/rwm/docci/live/**'
exclude 'de/ugoe/cs/rwm/docci/live/**'
testLogging.showStandardStreams = true
testLogging {
exceptionFormat = 'full'
......@@ -151,7 +157,7 @@ uploadArchives {
authentication(userName: System.getenv('NEXUSUSER'), password: System.getenv('NEXUSPASSWORD'))
}
pom.version = "1.0.0"
pom.artifactId = "docci"
pom.artifactId = "mocci"
pom.groupId = "de.ugoe.cs.rwm"
}
}
......
# Root logger option
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
\ No newline at end of file
<?xml version="1.0" encoding="ASCII"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:occi="http://schemas.ogf.org/occi/core/ecore">
<occi:Configuration>
</occi:Configuration>
</xmi:XMI>
package de.ugoe.cs.rwm.mocci;
import static org.junit.Assert.assertTrue;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.eclipse.cmf.occi.core.util.OcciRegistry;
import org.eclipse.epsilon.emc.emf.CachedResourceSet;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import de.ugoe.cs.rwm.docci.MartDeployer;
import de.ugoe.cs.rwm.docci.ModelUtility;
import de.ugoe.cs.rwm.mocci.TestUtility;
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.tocci.Transformator;
import de.ugoe.cs.rwm.tocci.TransformatorFactory;
public class DeployWorkflowTest {
@BeforeClass
public static void OCCIRegistrySetup() {
TestUtility.loggerSetup();
TestUtility.extensionRegistrySetup();
}
@Before
public void deprovisionEverything() {
CachedResourceSet.getCache().clear();
Path occiPath = Paths.get(ModelUtility.getPathToResource("occi/Empty.occic"));
Connector conn = new LocalhostConnector("localhost", 8080, "ubuntu");
MartDeployer deployer = new MartDeployer(conn);
deployer.deploy(occiPath);
}
@Test
public void deployWaaS() {
CachedResourceSet.getCache().clear();
System.out.println(OcciRegistry.getInstance().getRegisteredExtensions());
Logger.getRootLogger().setLevel(Level.FATAL);
Path occiPath = Paths.get(ModelUtility.getPathToResource("occi/MLSDiffVM.occic"));
Transformator trans = TransformatorFactory.getTransformator("OCCI2OCCI");
trans.transform(occiPath, occiPath);
Connector conn = new LocalhostConnector("localhost", 8080, "ubuntu");
MartDeployer deployer = new MartDeployer(conn);
deployer.deploy(occiPath);
assertTrue(TestUtility.equalsRuntime(occiPath, conn));
}
}
package de.ugoe.cs.rwm.mocci;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.eclipse.cmf.occi.core.OCCIPackage;
import org.eclipse.cmf.occi.core.util.OcciRegistry;
import org.eclipse.cmf.occi.infrastructure.InfrastructurePackage;
import org.eclipse.emf.ecore.EObject;
import org.modmacao.ansibleconfiguration.AnsibleconfigurationPackage;
import org.modmacao.placement.PlacementPackage;
import de.ugoe.cs.rwm.cocci.Comparator;
import de.ugoe.cs.rwm.cocci.ComparatorFactory;
import de.ugoe.cs.rwm.docci.Deployer;
import de.ugoe.cs.rwm.docci.ModelUtility;
import de.ugoe.cs.rwm.docci.appdeployer.MartAppDeployerMaster;
import de.ugoe.cs.rwm.docci.appdeployer.MartAppDeployerSlave;
import de.ugoe.cs.rwm.docci.connector.Connector;
import de.ugoe.cs.rwm.docci.deprovisioner.Deprovisioner;
import de.ugoe.cs.rwm.docci.executor.Executor;
import de.ugoe.cs.rwm.docci.extractor.Extractor;
import de.ugoe.cs.rwm.docci.provisioner.Provisioner;
import de.ugoe.cs.rwm.docci.updater.ElementAdapter;
import modmacao.ModmacaoPackage;
import openstackruntime.OpenstackruntimePackage;
import ossweruntime.OssweruntimePackage;
import workflow.WorkflowPackage;
public class TestUtility {
public static void extensionRegistrySetup() {
InfrastructurePackage.eINSTANCE.eClass();
OCCIPackage.eINSTANCE.eClass();
ModmacaoPackage.eINSTANCE.eClass();
OpenstackruntimePackage.eINSTANCE.eClass();
PlacementPackage.eINSTANCE.eClass();
WorkflowPackage.eINSTANCE.eClass();
OssweruntimePackage.eINSTANCE.eClass();
AnsibleconfigurationPackage.eINSTANCE.eClass();
OcciRegistry.getInstance().registerExtension("http://schemas.modmacao.org/modmacao#",
ModmacaoPackage.class.getClassLoader().getResource("model/modmacao.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.modmacao.org/openstack/runtime#",
OpenstackruntimePackage.class.getClassLoader().getResource("model/openstackruntime.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.modmacao.org/openstack/swe#",
OssweruntimePackage.class.getClassLoader().getResource("model/openstackruntime.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.modmacao.org/placement#",
PlacementPackage.class.getClassLoader().getResource("model/placement.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.ogf.org/occi/infrastructure#",
InfrastructurePackage.class.getClassLoader().getResource("model/Infrastructure.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.ogf.org/occi/core#",
OCCIPackage.class.getClassLoader().getResource("model/Core.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.ugoe.cs.rwm/workflow#",
OCCIPackage.class.getClassLoader().getResource("model/workflow.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.modmacao.org/openstack/swe#",
OCCIPackage.class.getClassLoader().getResource("model/ossweruntime.occie").toString());
OcciRegistry.getInstance().registerExtension("http://schemas.modmacao.org/occi/ansible#",
OCCIPackage.class.getClassLoader().getResource("model/ansibleconfiguration.occie").toString());
}
public static void loggerSetup() {
File log4jfile = new File(ModelUtility.getPathToResource("log4j.properties"));
PropertyConfigurator.configure(log4jfile.getAbsolutePath());
Logger.getLogger(Executor.class.getName()).setLevel(Level.DEBUG);
Logger.getLogger(Extractor.class.getName()).setLevel(Level.DEBUG);
Logger.getLogger(Provisioner.class.getName()).setLevel(Level.DEBUG);
Logger.getLogger(Comparator.class.getName()).setLevel(Level.FATAL);
Logger.getLogger(Deprovisioner.class.getName()).setLevel(Level.INFO);
Logger.getLogger(Connector.class.getName()).setLevel(Level.DEBUG);
Logger.getLogger(ElementAdapter.class.getName()).setLevel(Level.INFO);
Logger.getLogger(Deployer.class.getName()).setLevel(Level.INFO);
Logger.getLogger(MartAppDeployerMaster.class.getName()).setLevel(Level.DEBUG);
Logger.getLogger(MartAppDeployerSlave.class.getName()).setLevel(Level.DEBUG);
}
public static boolean equalsRuntime(Path desiredModelPath, Connector conn) {
Path deployedOCCI = Paths.get(ModelUtility.getPathToResource("occi/deployedRuntime.occic"));
conn.loadRuntimeModel(deployedOCCI);
org.eclipse.emf.ecore.resource.Resource desiredModel = ModelUtility.loadOCCIintoEMFResource(desiredModelPath);
org.eclipse.emf.ecore.resource.Resource runtimeModel = ModelUtility.loadOCCIintoEMFResource(deployedOCCI);
Comparator comp = ComparatorFactory.getComparator("Simple", desiredModel, runtimeModel);
boolean assertion = true;
System.out.println("MISSING ELEMENTS:");
for (EObject obj : comp.getMissingElements()) {
// Network check due to provider network
if (obj.eClass().getName().equals("Network") == false) {
System.out.println(obj);
assertion = false;
}
}
System.out.println("NEW ELEMENTS:");
for (EObject obj : comp.getNewElements()) {
// Network check due to provider network
if (obj.eClass().getName().equals("Network") == false) {
System.out.println(obj);
assertion = false;
}
}
return assertion;
}
}
package de.ugoe.cs.rwm.mocci.live;
import static org.junit.Assert.assertTrue;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.eclipse.cmf.occi.core.util.OcciRegistry;
import org.eclipse.epsilon.emc.emf.CachedResourceSet;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import de.ugoe.cs.rwm.docci.MartDeployer;
import de.ugoe.cs.rwm.docci.ModelUtility;
import de.ugoe.cs.rwm.mocci.TestUtility;
import de.ugoe.cs.rwm.docci.connector.Connector;
import de.ugoe.cs.rwm.docci.connector.MartConnector;
import de.ugoe.cs.rwm.tocci.Transformator;
import de.ugoe.cs.rwm.tocci.TransformatorFactory;
public class DeployWorkflowLiveTest {
@BeforeClass
public static void OCCIRegistrySetup() {
TestUtility.loggerSetup();
TestUtility.extensionRegistrySetup();
}
@Before
public void deprovisionEverything() {
CachedResourceSet.getCache().clear();
Path occiPath = Paths.get(ModelUtility.getPathToResource("occi/Empty.occic"));
Connector conn = new MartConnector("localhost", 8080, "root", "~/key.pem");
MartDeployer deployer = new MartDeployer(conn);
deployer.deploy(occiPath);
}
@Test
public void deployWaaS() {
CachedResourceSet.getCache().clear();
System.out.println(OcciRegistry.getInstance().getRegisteredExtensions());
Logger.getRootLogger().setLevel(Level.FATAL);
Path occiPath = Paths.get(ModelUtility.getPathToResource("occi/MLSDiffVM.occic"));
Transformator trans = TransformatorFactory.getTransformator("OCCI2OCCI");
trans.transform(occiPath, occiPath);
Connector conn = new MartConnector("localhost", 8080, "root", "~/key.pem");
MartDeployer deployer = new MartDeployer(conn);
deployer.deploy(occiPath);
assertTrue(TestUtility.equalsRuntime(occiPath, conn));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment