aboutsummaryrefslogtreecommitdiffstats
path: root/dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org
diff options
context:
space:
mode:
authorCarsten Lund <lund@research.att.com>2017-04-16 14:17:52 +0000
committerCarsten Lund <lund@research.att.com>2017-04-19 21:37:15 +0000
commite3c3eb5012b02d87a8d7143be3c195e86c298461 (patch)
tree349ac19ea8f8682fc48df58a54f084c237061980 /dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org
parent1650c3b0dda805110cac90dcaab8288d6b607b43 (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')
-rw-r--r--dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/docker/manager/tools/Generator.java152
-rw-r--r--dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/docker/DcaeDockerServiceProvider.java24
-rw-r--r--dcae-controller-service-docker/dcae-controller-service-docker-adaptor/src/main/java/org/openecomp/dcae/controller/service/servers/dockermanager/DcaeDockerManagerProvider.java125
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();
}
-
}