diff options
author | Carsten Lund <lund@research.att.com> | 2017-04-16 14:17:52 +0000 |
---|---|---|
committer | Carsten Lund <lund@research.att.com> | 2017-04-19 21:37:15 +0000 |
commit | e3c3eb5012b02d87a8d7143be3c195e86c298461 (patch) | |
tree | 349ac19ea8f8682fc48df58a54f084c237061980 /dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org | |
parent | 1650c3b0dda805110cac90dcaab8288d6b607b43 (diff) |
[DCAE-15] Changes related to version 1.1
See Jira for details
Change-Id: I29280abce45f53e80adf675f48cf1e0fff9e2c0a
Signed-off-by: Carsten Lund <lund@research.att.com>
Diffstat (limited to 'dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org')
3 files changed, 152 insertions, 149 deletions
diff --git a/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/docker/manager/tools/Generator.java b/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/docker/manager/tools/Generator.java index 49ba09f..e040825 100644 --- a/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/docker/manager/tools/Generator.java +++ b/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/docker/manager/tools/Generator.java @@ -19,78 +19,80 @@ * ============LICENSE_END============================================ */ -package org.openecomp.dcae.controller.service.docker.manager.tools;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.openecomp.ncomp.sirius.manager.controllermodel.ControllerModel;
-import org.openecomp.ncomp.sirius.manager.controllermodel.ControllermodelFactory;
-import org.openecomp.ncomp.sirius.manager.generator.ControllerGenerator;
-import org.openecomp.ncomp.gwt.siriusportal.model.*;
-import org.openecomp.ncomp.sirius.manager.server.ServerPackage;
-import org.openecomp.dcae.controller.service.docker.DockerFactory;
-import org.openecomp.dcae.controller.service.dockermanager.DockermanagerFactory;
-import org.openecomp.utils.YamlToJava;
-
-public class Generator {
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- @SuppressWarnings("unused")
- ServerPackage f = ServerPackage.eINSTANCE;
- genManager();
- genService();
- }
-
- public static void genManager() {
- EObject o = DockermanagerFactory.eINSTANCE.createDockerManager();
- EPackage p = o.eClass().getEPackage();
- String dir = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix();
- dir = "src/main/sirius-gen/" + dir.replace('.', '/');
- ControllerModel m = ControllermodelFactory.eINSTANCE.createControllerModel();
- m.setTemplateDirectory("../../dcae-org.openecomp.ncomp.sirius.manager/ncomp-sirius-manager-generator/src/main/templates");
- m.setPrefix("Dcae");
- m.setPluginName(p.getNsURI());
- m.setName("ControllerServiceDockerManager");
- m.setTitle("ControllerServiceDockerManager");
- ControllerGenerator g = new ControllerGenerator(o, m);
- g.setEnableIRequestHandler(false);
- g.setEnableISiriusPlugin(false);
- g.addFactory("org.openecomp.ncomp.servers.docker.DockerDockerFactory");
- g.addFactory(DockerFactory.eINSTANCE);
- EObject gui = ModelFactory.eINSTANCE.createGuiClientApi();
- g.addObject("gui", gui, m);
- g.generate(dir);
- g.generateScripts("src/main/server-gen/bin", "controller-service-docker-manager");
- String pName = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix() +".logging";
-// YamlToJava.convert("src/main/resources/DockerAdaptor.yaml", dir + "/logging", pName);
- YamlToJava.convert("src/main/sirius-gen/DockerManager.yaml", dir + "/logging", pName);
- String pName1 = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix() +".gui.logging";
- YamlToJava.convert("src/main/sirius-gen/GuiClientApi.yaml", dir + "/gui/logging", pName1);
- }
-
- public static void genService() {
- EObject o = DockerFactory.eINSTANCE.createDockerService();
- EPackage p = o.eClass().getEPackage();
- String dir = p.getNsURI().replaceAll(p.getNsPrefix()+"$", "") + "servers." + p.getNsPrefix();
- dir = "src/main/sirius-gen/" + dir.replace('.', '/');
- ControllerModel m = ControllermodelFactory.eINSTANCE.createControllerModel();
- m.setTemplateDirectory("../../dcae-org.openecomp.ncomp.sirius.manager/ncomp-sirius-manager-generator/src/main/templates");
- m.setPrefix("Dcae");
- m.setPluginName(p.getNsURI());
- m.setName("ControllerServiceDockerService");
- m.setTitle("ControllerServiceDockerService");
- ControllerGenerator g = new ControllerGenerator(o, m);
- g.setEnableIRequestHandler(false);
- g.setEnableISiriusPlugin(true);
- g.generate(dir);
- String pName = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix() +".logging";
-// YamlToJava.convert("src/main/resources/DcaeServiceDockerHost.yaml", dir + "/logging", pName);
- YamlToJava.convert("src/main/sirius-gen/DockerService.yaml", dir + "/logging", pName);
-
- }
-
-}
+package org.openecomp.dcae.controller.service.docker.manager.tools; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.openecomp.ncomp.sirius.manager.controllermodel.ControllerModel; +import org.openecomp.ncomp.sirius.manager.controllermodel.ControllermodelFactory; +import org.openecomp.ncomp.sirius.manager.generator.ControllerGenerator; +import org.openecomp.ncomp.gwt.siriusportal.model.*; +import org.openecomp.ncomp.sirius.manager.server.ServerPackage; +import org.openecomp.dcae.controller.service.docker.DockerFactory; +import org.openecomp.dcae.controller.service.dockermanager.DockermanagerFactory; +import org.openecomp.utils.YamlToJava; + +public class Generator { + + /** + * @param args + */ + public static void main(String[] args) { + @SuppressWarnings("unused") + ServerPackage f = ServerPackage.eINSTANCE; + genManager(); + genService(); + } + + public static void genManager() { + EObject o = DockermanagerFactory.eINSTANCE.createDockerManager(); + EPackage p = o.eClass().getEPackage(); + String dir = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix(); + dir = "src/main/sirius-gen/" + dir.replace('.', '/'); + ControllerModel m = ControllermodelFactory.eINSTANCE.createControllerModel(); + m.setTemplateDirectory("../../../ncomp.sirius.manager/ncomp-sirius-manager-generator/src/main/templates"); + m.setPrefix("Dcae"); + m.setPluginName(p.getNsURI()); + m.setName("ControllerServiceDockerManager"); + m.setTitle("ControllerServiceDockerManager"); + ControllerGenerator g = new ControllerGenerator(o, m); + g.setVersion("ONAP-R2"); + g.setEnableIRequestHandler(false); + g.setEnableISiriusPlugin(false); + g.addFactory("org.openecomp.ncomp.servers.docker.DockerDockerFactory"); + g.addFactory(DockerFactory.eINSTANCE); + EObject gui = ModelFactory.eINSTANCE.createGuiClientApi(); + g.addObject("gui", gui, m); + g.generate(dir); + g.generateScripts("src/main/server-gen/bin", "controller-service-docker-manager"); + String pName = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix() +".logging"; +// YamlToJava.convert("src/main/resources/DockerAdaptor.yaml", dir + "/logging", pName); + YamlToJava.convert("src/main/sirius-gen/DockerManager.yaml", dir + "/logging", pName); + YamlToJava.convert("src/main/java/DockerManager2.yaml", dir + "/logging", pName); + String pName1 = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix() +".gui.logging"; + YamlToJava.convert("src/main/sirius-gen/GuiClientApi.yaml", dir + "/gui/logging", pName1); + } + + public static void genService() { + EObject o = DockerFactory.eINSTANCE.createDockerService(); + EPackage p = o.eClass().getEPackage(); + String dir = p.getNsURI().replaceAll(p.getNsPrefix()+"$", "") + "servers." + p.getNsPrefix(); + dir = "src/main/sirius-gen/" + dir.replace('.', '/'); + ControllerModel m = ControllermodelFactory.eINSTANCE.createControllerModel(); + m.setTemplateDirectory("../../../ncomp.sirius.manager/ncomp-sirius-manager-generator/src/main/templates"); + m.setPrefix("Dcae"); + m.setPluginName(p.getNsURI()); + m.setName("ControllerServiceDockerService"); + m.setTitle("ControllerServiceDockerService"); + ControllerGenerator g = new ControllerGenerator(o, m); + g.setVersion("ONAP-R2"); + g.setEnableIRequestHandler(false); + g.setEnableISiriusPlugin(true); + g.generate(dir); + String pName = p.getNsURI().replaceAll(p.getNsPrefix()+'$',"") + "servers." + p.getNsPrefix() +".logging"; +// YamlToJava.convert("src/main/resources/DcaeServiceDockerHost.yaml", dir + "/logging", pName); + YamlToJava.convert("src/main/sirius-gen/DockerService.yaml", dir + "/logging", pName); + } + +} diff --git a/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/docker/DcaeDockerServiceProvider.java b/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/docker/DcaeDockerServiceProvider.java index e653107..cdfc596 100644 --- a/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/docker/DcaeDockerServiceProvider.java +++ b/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/docker/DcaeDockerServiceProvider.java @@ -45,6 +45,7 @@ import org.openecomp.dcae.controller.service.docker.host.servers.service.DcaeDoc import org.openecomp.dcae.controller.service.docker.host.service.DockerHostServiceInstance; import org.openecomp.dcae.controller.service.servers.dockermanager.DcaeDockerManagerConsole; import org.openecomp.dcae.controller.service.servers.vmmanager.DcaeVirtualMachineManagerConsole; +import org.openecomp.dcae.controller.service.vm.VirtualMachineService; import org.openecomp.dcae.controller.service.vm.VirtualMachineServiceInstance; import org.openecomp.ncomp.core.DeploymentStatus; import org.openecomp.ncomp.docker.ContainerOptions; @@ -54,6 +55,7 @@ import org.openecomp.ncomp.docker.DockerFactory; import org.openecomp.ncomp.servers.docker.DockerDockerHostConsole; import org.openecomp.ncomp.sirius.manager.AbstractClient; import org.openecomp.ncomp.sirius.manager.BasicAdaptorProvider; +import org.openecomp.ncomp.sirius.manager.ISiriusProvider; import org.openecomp.ncomp.sirius.manager.ISiriusServer; import org.openecomp.ncomp.sirius.manager.JavaHttpClient; import org.openecomp.ncomp.sirius.manager.ManagementServer; @@ -96,8 +98,8 @@ public class DcaeDockerServiceProvider extends BasicAdaptorProvider { } console(instanceName).setupConfiguration(o.getName(), instanceName); consoleHost(i).dockerRunWithOptions("/resources/dockerHost", image(i), opts); - long toolate = System.currentTimeMillis() + 2 * 60 * 1000; - // if has manager wait 2 minutes for container manager + long toolate = System.currentTimeMillis() + 15 * 60 * 1000; + // wait 15 minutes for container manager while (i.getManagerPortNumber() > 0 && System.currentTimeMillis() < toolate) { try { o.pushManagerConfiguration(instanceName); @@ -136,15 +138,15 @@ public class DcaeDockerServiceProvider extends BasicAdaptorProvider { public AbstractClient getClient(DockerServiceInstance i) { DockerHostServiceInstance instance = i.getHostService(); - DcaeDockerHostService service = (DcaeDockerHostService) instance.getService(); - DcaeDockerHostServiceProvider provider = service.getSomfProvider(); + VirtualMachineService service = instance.getService(); + DcaeDockerHostServiceProvider provider = (DcaeDockerHostServiceProvider) ((ISiriusProvider) service).getSiriusProvider(); return provider.getClient(instance); } private DockerDockerHostConsole consoleHost(DockerServiceInstance i) { DockerHostServiceInstance instance = i.getHostService(); - DcaeDockerHostService service = (DcaeDockerHostService) instance.getService(); - DcaeDockerHostServiceProvider provider = service.getSomfProvider(); + VirtualMachineService service = instance.getService(); + DcaeDockerHostServiceProvider provider = (DcaeDockerHostServiceProvider) ((ISiriusProvider) service).getSiriusProvider(); AbstractClient c = provider.getClient(instance); return new DockerDockerHostConsole(c); } @@ -265,11 +267,17 @@ public class DcaeDockerServiceProvider extends BasicAdaptorProvider { } public void runHealthTests() { - System.out.println("DOCKER: runHealthTests" + o.getName()); +// System.out.println("DOCKER: runHealthTests" + o.getName()); for (DockerServiceInstance i : o.getInstances()) { HealthTestResponse s = null; try { - s = o.test(i.getName()); + if (i.getStatus() == DeploymentStatus.DEPLOYED) { + s = test(i.getName()); + } else { + s = ServiceFactory.eINSTANCE.createHealthTestResponse(); + s.setMessageCode("Not deployed"); + s.setStatus(HealthTestStatus.YELLOW); + } } catch (Exception e) { s = ServiceFactory.eINSTANCE.createHealthTestResponse(); s.setMessageCode("Unable to determine health: " + e); diff --git a/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/dockermanager/DcaeDockerManagerProvider.java b/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/dockermanager/DcaeDockerManagerProvider.java index a6e70da..13173ac 100644 --- a/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/dockermanager/DcaeDockerManagerProvider.java +++ b/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/dockermanager/DcaeDockerManagerProvider.java @@ -19,45 +19,36 @@ * ============LICENSE_END============================================ */ - package org.openecomp.dcae.controller.service.servers.dockermanager; - - - - -import java.io.ByteArrayOutputStream; -import java.io.InputStream; import java.io.OutputStreamWriter; import java.util.Date; -import org.openecomp.ncomp.sirius.manager.IRequestHandler; -import org.openecomp.ncomp.sirius.manager.ISiriusPlugin; -import org.openecomp.ncomp.sirius.manager.ISiriusServer; -import org.openecomp.ncomp.sirius.manager.ManagementServer; -import org.openecomp.ncomp.sirius.manager.ManagementServerUtils; -import org.openecomp.ncomp.sirius.function.FunctionUtils; - import org.apache.log4j.Logger; import org.eclipse.emf.common.util.EList; import org.json.JSONArray; import org.json.JSONObject; - - - -import org.openecomp.ncomp.sirius.manager.BasicAdaptorProvider; -import org.openecomp.ncomp.webservice.utils.FileUtils; import org.openecomp.dcae.controller.core.service.HealthTestResponse; import org.openecomp.dcae.controller.core.service.HealthTestStatus; import org.openecomp.dcae.controller.core.service.ServiceFactory; import org.openecomp.dcae.controller.core.stream.DcaeStream; -import org.openecomp.dcae.controller.service.dockermanager.impl.DockerManagerImpl; import org.openecomp.dcae.controller.service.dockermanager.DockerManager; - +import org.openecomp.dcae.controller.service.servers.dockermanager.logging.DockerManager2MessageEnum; +import org.openecomp.dcae.controller.service.servers.dockermanager.logging.DockerManager2OperationEnum; +import org.openecomp.logger.EcompMessageEnum; +import org.openecomp.logger.StatusCodeEnum; +import org.openecomp.ncomp.sirius.manager.BasicAdaptorProvider; +import org.openecomp.ncomp.sirius.manager.ISiriusServer; +import org.openecomp.ncomp.sirius.manager.ManagementServer; +import org.openecomp.ncomp.sirius.manager.ManagementServerUtils; +import org.openecomp.ncomp.sirius.manager.logging.NcompLogger; +import org.openecomp.ncomp.utils.ShellCmd; +import org.openecomp.ncomp.webservice.utils.FileUtils; public class DcaeDockerManagerProvider extends BasicAdaptorProvider { private static final Logger logger = Logger.getLogger(DcaeDockerManagerProvider.class); + private static final NcompLogger ecomplogger = NcompLogger.getNcompLogger(); DockerManager o; private boolean suspended; @@ -102,9 +93,9 @@ public class DcaeDockerManagerProvider extends BasicAdaptorProvider { json.put("dmaapStreamId", s.getName()); a.put(json); } - write2file(a,"/tmp/dmaap.conf2"); - write2file(a,"/etc/dcae/dmaap.conf"); - + write2file(a, "/tmp/dmaap.conf2"); + write2file(a, "/etc/dcae/dmaap.conf"); + } private void write2file(JSONArray a, String fileName) { @@ -124,49 +115,51 @@ public class DcaeDockerManagerProvider extends BasicAdaptorProvider { o.getOutputStreams().clear(); o.getOutputStreams().addAll(outputStreams); } - + public void scheduleCronjob(final String cmd, final long frequency) { - Thread t = new Thread("crontab: " + cmd) { - @Override - public void run() { - while (true) { - try { - Date now = new Date(); - long wait = frequency - (now.getTime() % frequency); - Thread.sleep(wait); - if (suspended) continue; - Runtime runtime = Runtime.getRuntime(); - Process proc; - try { - now = new Date(); - proc = runtime.exec(cmd); - ByteArrayOutputStream o = new ByteArrayOutputStream(); - ByteArrayOutputStream e = new ByteArrayOutputStream(); - FileUtils.copyStream(proc.getInputStream(), o); - FileUtils.copyStream(proc.getErrorStream(), e); - int i = proc.waitFor(); - if (i != 0) - logger.warn("crontab return error: " + cmd + " " + i); - long duration = new Date().getTime()-now.getTime(); - if (duration > frequency) - logger.warn("crontab took too long: " + cmd + " " + duration); - } catch (Exception e) { - e.printStackTrace(); - logger.warn("ERROR: " + e); - } - } catch (Exception e) { - ManagementServerUtils.printStackTrace(e); - logger.fatal("crontab: " + cmd + " " + e); - try { - Thread.sleep(30000); - } catch (InterruptedException e1) { - } - } - } - }; - }; - t.start(); + ecomplogger.setOperation(DockerManager2OperationEnum.DOCKER_MANAGER_START_NEW_CRON); + ecomplogger.newRequestId(); + ecomplogger.setInstanceId(controller, o); + ecomplogger.recordAuditEventStart(); + EcompMessageEnum msg1 = DockerManager2MessageEnum.DOCKER_MANAGER_START_NEW_CRON; + ; + ecomplogger.recordAuditEventEnd(StatusCodeEnum.COMPLETE, msg1, cmd, Long.toString(frequency)); + + Thread t = new Thread("crontab: " + cmd) { + @Override + public void run() { + while (true) { + try { + Date now = new Date(); + long wait = frequency - (now.getTime() % frequency); + Thread.sleep(wait); + if (suspended) + continue; + try { + ecomplogger.setOperation(DockerManager2OperationEnum.DOCKER_MANAGER_START_CRON_RUN); + ecomplogger.newRequestId(); + ecomplogger.setInstanceId(controller, o); + ecomplogger.recordAuditEventStart(); + ShellCmd c = new ShellCmd(cmd); + c.result(frequency); + ecomplogger.recordAuditEventEnd(); + } catch (Exception e) { + e.printStackTrace(); + EcompMessageEnum msg = DockerManager2MessageEnum.DOCKER_MANAGER_CRON_FAILURE; + ecomplogger.recordAuditEventEnd(StatusCodeEnum.ERROR, msg, cmd, e.toString()); + } + } catch (Exception e) { + ManagementServerUtils.printStackTrace(e); + logger.fatal("crontab: " + cmd + " " + e); + try { + Thread.sleep(30000); + } catch (InterruptedException e1) { + } + } + } + }; + }; + t.start(); } - } |