Code fix for attach and detach volumes 97/32697/2
authorPatrick Brady <pb071s@att.com>
Fri, 23 Feb 2018 17:35:46 +0000 (12:35 -0500)
committerRanda Maher <rx196w@att.com>
Wed, 28 Feb 2018 00:14:50 +0000 (00:14 +0000)
Cherry-picked to split up commit https://gerrit.onap.org/r/#/c/31149/
into individual jira tickets.

open stack consumes cdp-pal openstack jars to connect to cinder,
this fix retrives set of volumes from volumeservice provider
and performs attach or detach through compute service.

Change-Id: I59bce60d9f79ba9285f284fe1f56945e63d0bcba
Signed-off-by: Patrick Brady <pb071s@att.com>
Signed-off-by: kusuma kumari M <km583p@att.com>
Issue-ID: APPC-448

appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/impl/AttachVolumeServer.java
appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/impl/DettachVolumeServer.java
appc-directed-graph/appc-dgraph/provider/src/main/resources/json/APPC/APPC_AttachVolumeVM.json
appc-directed-graph/appc-dgraph/provider/src/main/resources/json/APPC/APPC_DetachVolumeVM.json

index fe42076..e27b159 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
@@ -25,7 +25,6 @@ package org.onap.appc.adapter.iaas.provider.operation.impl;
 
 import static org.onap.appc.adapter.iaas.provider.operation.common.enums.Operation.ATTACHVOLUME_SERVICE;
 import static org.onap.appc.adapter.utils.Constants.ADAPTER_NAME;
-
 import com.att.cdp.exceptions.ZoneException;
 import com.att.cdp.zones.ComputeService;
 import com.att.cdp.zones.Context;
@@ -74,48 +73,57 @@ public class AttachVolumeServer extends ProviderServerOperation {
             String identStr = (ident == null) ? null : ident.toString();
             context = getContext(requestContext, vmUrl, identStr);
             if (context != null) {
-                tenantName = context.getTenantName();// this variable also is used in case of exception
+                tenantName = context.getTenantName();// this variable also is
+                                                        // used in case of
+                                                        // exception
                 requestContext.reset();
                 server = lookupServer(requestContext, context, vm.getServerId());
                 logger.debug(Msg.SERVER_FOUND, vmUrl, context.getTenantName(), server.getStatus().toString());
                 Context contx = server.getContext();
                 ComputeService service = contx.getComputeService();
                 VolumeService volumeService = contx.getVolumeService();
-                logger.info("Collecting volume status for volume id: " + volumeId);
+                logger.info("collecting volume status for volume -id:" + volumeId);
                 List<Volume> volumes = volumeService.getVolumes();
-                logger.info("Size of volume list: " + volumes.size());
-                for (Volume volume : volumes) {
-                    logger.info("Processing volume with id: " + volume.getId());
-                    if (!volume.getId().equals(volumeId)) {
+                Volume volume = new Volume();
+                logger.info("Size of volume list :" + volumes.size());
+                if (volumes != null && !volumes.isEmpty()) {
+                    if (!(volumes.contains(volumeId))) {
                         volume.setId(volumeId);
-                        logger.info("Ready to Attach Volume to the server: " + Volume.Status.ATTACHING);
+                        logger.info("Ready to Attach Volume to the server:");
                         service.attachVolume(server, volume, device);
-                        logger.info("Volume status after performing attach: " + volume.getStatus());
-
-                        validateAttach(volumeService, volumeId, requestContext);
+                        logger.info("Volume status after performing attach:" + volume.getStatus());
+                        if (validateAttach(volumeService, volumeId)) {
+                            ctx.setAttribute("VOLUME_STATUS", "SUCCESS");
+                            doSuccess(requestContext);
+                        } else {
+                            String msg = "Failed to attach Volume";
+                            logger.info("Volume with " + volumeId + " unable to attach");
+                            ctx.setAttribute("VOLUME_STATUS", "FAILURE");
+                            doFailure(requestContext, HttpStatus.NOT_IMPLEMENTED_501, msg);
+                        }
                     } else {
-                        String msg = "Volume with id: " + volumeId + " cannot be attached as it already exists";
-                        logger.info(msg);
+                        String msg = "Volume with volume id " + volumeId + " cannot be attached as it already exists";
+                        logger.info("Alreday volumes exists:");
+                        ctx.setAttribute("VOLUME_STATUS", "FAILURE");
                         doFailure(requestContext, HttpStatus.NOT_IMPLEMENTED_501, msg);
                     }
                 }
                 context.close();
-                doSuccess(requestContext);
-                ctx.setAttribute("VOLUME_STATUS", "SUCCESS");
             } else {
                 ctx.setAttribute("VOLUME_STATUS", "CONTEXT_NOT_FOUND");
             }
         } catch (ZoneException e) {
             String msg = EELFResourceManager.format(Msg.SERVER_NOT_FOUND, e, vmUrl);
             logger.error(msg);
+            ctx.setAttribute("VOLUME_STATUS", "FAILURE");
             doFailure(requestContext, HttpStatus.NOT_FOUND_404, msg);
         } catch (RequestFailedException e) {
-            logger.error("An error occurred in attachVolume", e);
+            ctx.setAttribute("VOLUME_STATUS", "FAILURE");
             doFailure(requestContext, e.getStatus(), e.getMessage());
         } catch (Exception ex) {
             String msg = EELFResourceManager.format(Msg.SERVER_OPERATION_EXCEPTION, ex, ex.getClass().getSimpleName(),
-                ATTACHVOLUME_SERVICE.toString(), vmUrl, tenantName);
-            logger.error(msg, ex);
+                    ATTACHVOLUME_SERVICE.toString(), vmUrl, tenantName);
+            ctx.setAttribute("VOLUME_STATUS", "FAILURE");
             doFailure(requestContext, HttpStatus.INTERNAL_SERVER_ERROR_500, msg);
         }
         return server;
@@ -123,24 +131,22 @@ public class AttachVolumeServer extends ProviderServerOperation {
 
     @Override
     protected ModelObject executeProviderOperation(Map<String, String> params, SvcLogicContext context)
-        throws APPCException {
+            throws APPCException {
         setMDC(Operation.ATTACHVOLUME_SERVICE.toString(), "App-C IaaS Adapter:attachVolume", ADAPTER_NAME);
         logOperation(Msg.ATTACHINGVOLUME_SERVER, params, context);
         return attachVolume(params, context);
     }
 
-    private void validateAttach(VolumeService vs, String volId, RequestContext requestContext)
-        throws RequestFailedException, ZoneException {
-
-        List<Volume> volList = vs.getVolumes();
-        for (Volume v : volList) {
-            if (v.getId().equals(volId)) {
-                logger.info("Volume with id: " + volId + " attached successfully");
-                doSuccess(requestContext);
-            } else {
-                logger.info("Failed to attach volume with id: " + volId);
-            }
+    protected boolean validateAttach(VolumeService volumeService, String volumeId)
+            throws RequestFailedException, ZoneException {
+        boolean flag = false;
+        List<Volume> volumeList = volumeService.getVolumes();
+        if (volumeList.contains(volumeId)) {
+            flag = true;
+        } else {
+            flag = false;
         }
+        logger.info("validateAttach flag-->" + flag);
+        return flag;
     }
-
 }
index 6f0ab87..d9b30cb 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
@@ -23,9 +23,8 @@
  */
 package org.onap.appc.adapter.iaas.provider.operation.impl;
 
-import static org.onap.appc.adapter.iaas.provider.operation.common.enums.Operation.ATTACHVOLUME_SERVICE;
+import static org.onap.appc.adapter.iaas.provider.operation.common.enums.Operation.DETACHVOLUME_SERVICE;
 import static org.onap.appc.adapter.utils.Constants.ADAPTER_NAME;
-
 import com.att.cdp.exceptions.ZoneException;
 import com.att.cdp.zones.ComputeService;
 import com.att.cdp.zones.Context;
@@ -52,12 +51,11 @@ import org.onap.appc.i18n.Msg;
 import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 
 public class DettachVolumeServer extends ProviderServerOperation {
-
     private final EELFLogger logger = EELFManager.getInstance().getLogger(DettachVolumeServer.class);
 
     @Override
     protected ModelObject executeProviderOperation(Map<String, String> params, SvcLogicContext context)
-        throws APPCException {
+            throws APPCException {
         setMDC(Operation.DETACHVOLUME_SERVICE.toString(), "App-C IaaS Adapter:dettachVolume", ADAPTER_NAME);
         logOperation(Msg.DETTACHINGVOLUME_SERVER, params, context);
         return dettachVolume(params, context);
@@ -65,84 +63,86 @@ public class DettachVolumeServer extends ProviderServerOperation {
 
     private Server dettachVolume(Map<String, String> params, SvcLogicContext ctx) {
         Server server = null;
-        RequestContext rc = new RequestContext(ctx);
-        rc.isAlive();
+        RequestContext requestContext = new RequestContext(ctx);
+        requestContext.isAlive();
         String appName = configuration.getProperty(Constants.PROPERTY_APPLICATION_NAME);
         String vmUrl = params.get(ProviderAdapter.PROPERTY_INSTANCE_URL);
         String volumeId = params.get(ProviderAdapter.VOLUME_ID);
         VMURL vm = VMURL.parseURL(vmUrl);
         Context context;
-        String tenantName = "Unknown";//to be used also in case of exception
+        String tenantName = "Unknown";// to be used also in case of exception
         try {
-            if (validateVM(rc, appName, vmUrl, vm)) {
+            if (validateVM(requestContext, appName, vmUrl, vm)) {
                 return null;
             }
             IdentityURL ident = IdentityURL.parseURL(params.get(ProviderAdapter.PROPERTY_IDENTITY_URL));
             String identStr = (ident == null) ? null : ident.toString();
-            context = getContext(rc, vmUrl, identStr);
+            context = getContext(requestContext, vmUrl, identStr);
             if (context != null) {
-                tenantName = context.getTenantName();//this variable also is used in case of exception
-                rc.reset();
-                server = lookupServer(rc, context, vm.getServerId());
+                tenantName = context.getTenantName();// this variable also is
+                                                        // used in case of
+                                                        // exception
+                requestContext.reset();
+                server = lookupServer(requestContext, context, vm.getServerId());
                 logger.debug(Msg.SERVER_FOUND, vmUrl, context.getTenantName(), server.getStatus().toString());
                 Context contx = server.getContext();
                 ComputeService service = contx.getComputeService();
-                VolumeService vs = contx.getVolumeService();
+                VolumeService volumeService = contx.getVolumeService();
                 logger.info("collecting volume status for volume -id: " + volumeId);
-                List<Volume> volList = vs.getVolumes();
-                logger.info("Size of volume list: " + volList.size());
-                if (!volList.isEmpty()) {
-                    for (Volume v : volList) {
-                        logger.info("list of volumesif exists: " + v.getId());
-                        if (v.getId().equals(volumeId)) {
-                            v.setId(volumeId);
-                            logger.info("Ready to Detach Volume from the server: " + Volume.Status.DETACHING);
-                            service.detachVolume(server, v);
-                            logger.info("Volume status after performing detach: " + v.getStatus());
-                            if (validateDetach(vs, volumeId)) {
-                                doSuccess(rc);
-                            }
+                List<Volume> volumes = volumeService.getVolumes();
+                Volume volume = new Volume();
+                logger.info("Size of volume list: " + volumes.size());
+                if (volumes != null && !volumes.isEmpty()) {
+                    if (volumes.contains(volumeId)) {
+                        volume.setId(volumeId);
+                        logger.info("Ready to Detach Volume from the server: " + Volume.Status.DETACHING);
+                        service.detachVolume(server, volume);
+                        logger.info("Volume status after performing detach: " + volume.getStatus());
+                        if (validateDetach(volumeService, volumeId)) {
+                            doSuccess(requestContext);
                         } else {
-                            String msg =
-                                "Volume with volume id " + volumeId + " cannot be detached as it doesn't exists";
-                            doFailure(rc, HttpStatus.NOT_IMPLEMENTED_501, msg);
+                            String msg = "Volume with volume id " + volumeId + " cannot be detached ";
+                            ctx.setAttribute("VOLUME_STATUS", "FAILURE");
+                            doFailure(requestContext, HttpStatus.NOT_IMPLEMENTED_501, msg);
+                            logger.info("unable to detach volume  from the server");
                         }
+                    } else {
+                        String msg = "Volume with volume id " + volumeId + " cannot be detached as it doesn't exists";
+                        ctx.setAttribute("VOLUME_STATUS", "FAILURE");
+                        doFailure(requestContext, HttpStatus.NOT_IMPLEMENTED_501, msg);
                     }
+                    logger.info("volumestatus:" + ctx.getAttribute("VOLUME_STATUS"));
                 }
                 context.close();
-                doSuccess(rc);
-                ctx.setAttribute("VOLUME_STATUS", "SUCCESS");
             } else {
                 ctx.setAttribute("VOLUME_STATUS", "CONTEXT_NOT_FOUND");
             }
         } catch (ZoneException e) {
             String msg = EELFResourceManager.format(Msg.SERVER_NOT_FOUND, e, vmUrl);
             logger.error(msg);
-            doFailure(rc, HttpStatus.NOT_FOUND_404, msg);
+            doFailure(requestContext, HttpStatus.NOT_FOUND_404, msg);
         } catch (RequestFailedException e) {
             logger.error("An error occurred when processing the request", e);
-            doFailure(rc, e.getStatus(), e.getMessage());
+            doFailure(requestContext, e.getStatus(), e.getMessage());
         } catch (Exception e) {
             String msg = EELFResourceManager.format(Msg.SERVER_OPERATION_EXCEPTION, e, e.getClass().getSimpleName(),
-                ATTACHVOLUME_SERVICE.toString(), vmUrl, tenantName);
+                    DETACHVOLUME_SERVICE.toString(), vmUrl, tenantName);
             logger.error(msg, e);
-            doFailure(rc, HttpStatus.INTERNAL_SERVER_ERROR_500, msg);
+            doFailure(requestContext, HttpStatus.INTERNAL_SERVER_ERROR_500, msg);
         }
         return server;
     }
 
-    protected boolean validateDetach(VolumeService vs, String volId) throws RequestFailedException, ZoneException {
+    protected boolean validateDetach(VolumeService volumeService, String volId)
+            throws RequestFailedException, ZoneException {
         boolean flag = false;
-        List<Volume> volList = vs.getVolumes();
-        for (Volume v : volList) {
-            if (!v.getId().equals(volId)) {
-                logger.info("Volume with " + volId + "detached successsfully");
-                flag = true;
-            } else {
-                logger.info("failed to detach volume with id" + volId);
-                flag = false;
-            }
+        List<Volume> volumes = volumeService.getVolumes();
+        if (!volumes.contains(volId)) {
+            flag = true;
+        } else {
+            flag = false;
         }
+        logger.info("validateDetach flag-->" + flag);
         return flag;
     }
 }
index 8684afa..2b33c7e 100644 (file)
@@ -1,20 +1,20 @@
 [\r
     {\r
-        "id": "8c8d638b.d864e8",\r
+        "id": "5007ce02.07f1d",\r
         "type": "dgstart",\r
         "name": "DGSTART",\r
         "outputs": 1,\r
-        "x": 84,\r
-        "y": 84,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 87,\r
+        "y": 73.11666870117188,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "67bc77ec.cfab9"\r
+                "7d845d7f.b28f8c"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "67bc77ec.cfab9",\r
+        "id": "7d845d7f.b28f8c",\r
         "type": "service-logic",\r
         "name": "APPC 4.0.0",\r
         "module": "APPC",\r
         "comments": "",\r
         "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='4.0.0'>",\r
         "outputs": 1,\r
-        "x": 241,\r
-        "y": 84,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 220,\r
+        "y": 38.116668701171875,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "9ab2a765.c334e"\r
+                "2bf8e045.73a448"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "9ab2a765.c334e",\r
+        "id": "2bf8e045.73a448",\r
         "type": "method",\r
         "name": "AttachVolume",\r
         "xml": "<method rpc='AttachVolumeVM' mode='sync'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 439,\r
-        "y": 86,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 418,\r
+        "y": 40.116668701171875,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "af60ef65.5a714"\r
+                "468a32bf.35f284"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "9d95111e.b625",\r
+        "id": "6d9a583d.567f7",\r
         "type": "success",\r
         "name": "success",\r
         "xml": "<outcome value='success'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 806.9999694824219,\r
-        "y": 295.9999694824219,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 785.9999694824219,\r
+        "y": 250.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "3f10a3d4.fa8644"\r
+                "9b1062e9.283098"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "98f61d5c.9857e8",\r
+        "id": "ddd78a95.68e358",\r
         "type": "other",\r
         "name": "other",\r
         "xml": "<outcome value='Other'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 815.9999694824219,\r
-        "y": 174.99996948242188,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 794.9999694824219,\r
+        "y": 129.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "b2efb443.b631a"\r
+                "f06647ab.96aca"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "6be48d2c.b63d8c",\r
+        "id": "10c52db4.a51652",\r
         "type": "returnSuccess",\r
         "name": "return success",\r
         "xml": "<return status='success'>",\r
         "comments": "",\r
-        "x": 1362.9999694824219,\r
-        "y": 267.9999694824219,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 1341.9999694824219,\r
+        "y": 222.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": []\r
     },\r
     {\r
-        "id": "3ebaa10e.c55e6e",\r
+        "id": "84c0dae5.04bb7",\r
         "type": "returnFailure",\r
         "name": "return failure",\r
         "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='RPC attachVolume not found' />",\r
         "comments": "",\r
-        "x": 1123.9999694824219,\r
-        "y": 174.99996948242188,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 1102.9999694824219,\r
+        "y": 129.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": []\r
     },\r
     {\r
-        "id": "3f10a3d4.fa8644",\r
+        "id": "9b1062e9.283098",\r
         "type": "switchNode",\r
-        "name": "switch error-code",\r
-        "xml": "<switch test='`$error_code`'>\n",\r
+        "name": "switch status",\r
+        "xml": "<switch test='`$VOLUME_STATUS`'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 999.9999694824219,\r
-        "y": 296.9999694824219,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 978.9999694824219,\r
+        "y": 251.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "78e00fc2.178ca8",\r
-                "5cb2873d.ba509"\r
+                "69b4b801.d2dd58",\r
+                "4a833666.1d3a3"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "78e00fc2.178ca8",\r
+        "id": "69b4b801.d2dd58",\r
         "type": "success",\r
-        "name": "SUCCESS 200",\r
-        "xml": "<outcome value='200'>\n",\r
+        "name": "success",\r
+        "xml": "<outcome value='SUCCESS'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 1181.9999694824219,\r
-        "y": 266.9999694824219,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 1160.9999694824219,\r
+        "y": 221.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "6be48d2c.b63d8c"\r
+                "10c52db4.a51652"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "5cb2873d.ba509",\r
+        "id": "4a833666.1d3a3",\r
         "type": "outcome",\r
         "name": "ERROR",\r
         "xml": "<outcome value='Other'>\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 1173.9999694824219,\r
-        "y": 425.9999694824219,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 1152.9999694824219,\r
+        "y": 380.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "c45d6cad.1266a8"\r
+                "df65c991.2b7fa8"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "c45d6cad.1266a8",\r
+        "id": "df65c991.2b7fa8",\r
         "type": "block",\r
         "name": "block",\r
         "xml": "<block>\n",\r
         "atomic": "false",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 1306.9999694824219,\r
-        "y": 426.9999694824219,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 1285.9999694824219,\r
+        "y": 381.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "4593642b.a03a34",\r
-                "7bdd8ae4.5a04e4"\r
+                "21987bda.eebd5c",\r
+                "3d82b93b.845e96"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "4593642b.a03a34",\r
+        "id": "21987bda.eebd5c",\r
         "type": "returnFailure",\r
         "name": "return failure",\r
         "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='`$error-message`' />\n",\r
         "comments": "",\r
-        "x": 1441.9999694824219,\r
-        "y": 468,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 1420.9999694824219,\r
+        "y": 422.1166687011719,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": []\r
     },\r
     {\r
-        "id": "b2efb443.b631a",\r
+        "id": "f06647ab.96aca",\r
         "type": "block",\r
         "name": "block",\r
         "xml": "<block>\n",\r
         "atomic": "false",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 971.9999694824219,\r
-        "y": 174.99996948242188,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 950.9999694824219,\r
+        "y": 129.11663818359375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "3ebaa10e.c55e6e"\r
+                "84c0dae5.04bb7"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "80ee82a0.8401c8",\r
+        "id": "ff624428.83add8",\r
         "type": "record",\r
         "name": "record",\r
-        "xml": "<record plugin=\"onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'input.payload = ' + $input.payload`\" />\n<parameter name=\"field3\" value=\"`'vm-id in context=' + $vm-id`\" />\n<parameter name=\"field4\" value=\"`'volumeId in context=' + $volumeId`\" />\n",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'input.payload = ' + $input.payload`\" />\n<parameter name=\"field3\" value=\"`'vm-id in context=' + $vm-id`\" />\n<parameter name=\"field4\" value=\"`'volumeId in context=' + $volumeId`\" />\n",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 806.11669921875,\r
-        "y": 116,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 785.11669921875,\r
+        "y": 70.11666870117188,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             []\r
         ]\r
     },\r
     {\r
-        "id": "af60ef65.5a714",\r
+        "id": "468a32bf.35f284",\r
         "type": "block",\r
         "name": "block",\r
         "xml": "<block>\n",\r
         "atomic": "false",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 627.8666687011719,\r
-        "y": 144.86666870117188,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 606.8666687011719,\r
+        "y": 98.98333740234375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "80ee82a0.8401c8",\r
-                "1ecc7492.a889b3"\r
+                "ff624428.83add8",\r
+                "18c8070a.4a19b1"\r
             ]\r
         ]\r
     },\r
     {\r
-        "id": "7bdd8ae4.5a04e4",\r
+        "id": "3d82b93b.845e96",\r
         "type": "record",\r
         "name": "record",\r
-        "xml": "<record plugin=\"onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field3\" value=\"`'error-message = ' + $error-message`\" />\n<parameter name=\"field4\" value=\"`'error-code = ' + $error_code`\" />",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field3\" value=\"`'error-message = ' + $error-message`\" />\n<parameter name=\"field4\" value=\"`'error-code = ' + $error_code`\" />",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 1431.8666687011719,\r
-        "y": 398.8666687011719,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 1410.8666687011719,\r
+        "y": 352.98333740234375,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             []\r
         ]\r
     },\r
     {\r
-        "id": "1ecc7492.a889b3",\r
+        "id": "18c8070a.4a19b1",\r
         "type": "execute",\r
         "name": "attachVolume",\r
         "xml": "<execute plugin='org.onap.appc.adapter.iaas.ProviderAdapter' method='attachVolume'>\n<parameter name=\"org.onap.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.onap.appc.instance.url\" value=\"`$vm-id`\" />\n<parameter name=\"org.onap.appc.identity.url\" value=\"`$identity-url`\" />\n<parameter name=\"org.onap.appc.volumeid\" value=\"`$volumeAttachment.volumeId`\" />\n<parameter name=\"org.onap.appc.device\" value=\"`$volumeAttachment.device`\" />\n<parameter name=\"org.onap.appc.tag\" value=\"`$volumeAttachment.tag`\" />",\r
         "comments": "",\r
         "outputs": 1,\r
-        "x": 643.9999694824219,\r
-        "y": 230,\r
-        "z": "1eca43d0.41972c",\r
+        "x": 622.9999694824219,\r
+        "y": 184.11666870117188,\r
+        "z": "bb7eafb1.d37d2",\r
         "wires": [\r
             [\r
-                "98f61d5c.9857e8",\r
-                "9d95111e.b625"\r
+                "ddd78a95.68e358",\r
+                "6d9a583d.567f7"\r
             ]\r
         ]\r
     }\r
index 32fe9c2..2fbca8f 100644 (file)
-[
-    {
-        "id": "eeae9def.4d566",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 93,
-        "y": 92,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "f51d1b93.7d168"
-            ]
-        ]
-    },
-    {
-        "id": "f51d1b93.7d168",
-        "type": "service-logic",
-        "name": "APPC 4.0.0",
-        "module": "APPC",
-        "version": "4.0.0",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='4.0.0'>",
-        "outputs": 1,
-        "x": 250,
-        "y": 92,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "10439b1c.b0fbc5"
-            ]
-        ]
-    },
-    {
-        "id": "10439b1c.b0fbc5",
-        "type": "method",
-        "name": "DetachVolume",
-        "xml": "<method rpc='DetachVolumeVM' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 448,
-        "y": 94,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "cf4fac38.3b932"
-            ]
-        ]
-    },
-    {
-        "id": "6f1b4f51.cab76",
-        "type": "success",
-        "name": "success",
-        "xml": "<outcome value='success'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 815.9999694824219,
-        "y": 303.9999694824219,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "f6364905.533518"
-            ]
-        ]
-    },
-    {
-        "id": "eda3e619.a190e",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 824.9999694824219,
-        "y": 182.99996948242188,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "b81aef23.ced6e8"
-            ]
-        ]
-    },
-    {
-        "id": "361abfaa.ca34b8",
-        "type": "returnSuccess",
-        "name": "return success",
-        "xml": "<return status='success'>",
-        "comments": "",
-        "x": 1371.9999694824219,
-        "y": 275.9999694824219,
-        "z": "65f0ae97.bfd7e8",
-        "wires": []
-    },
-    {
-        "id": "5b028b69.7d6af4",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='RPC dettachVolume not found' />",
-        "comments": "",
-        "x": 1132.9999694824219,
-        "y": 182.99996948242188,
-        "z": "65f0ae97.bfd7e8",
-        "wires": []
-    },
-    {
-        "id": "f6364905.533518",
-        "type": "switchNode",
-        "name": "switch error-code",
-        "xml": "<switch test='`$error_code`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1008.9999694824219,
-        "y": 304.9999694824219,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "567026e7.afed6",
-                "ee60ee08.fb232"
-            ]
-        ]
-    },
-    {
-        "id": "567026e7.afed6",
-        "type": "success",
-        "name": "SUCCESS 200",
-        "xml": "<outcome value='200'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1190.9999694824219,
-        "y": 274.9999694824219,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "361abfaa.ca34b8"
-            ]
-        ]
-    },
-    {
-        "id": "ee60ee08.fb232",
-        "type": "outcome",
-        "name": "ERROR",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1182.9999694824219,
-        "y": 433.9999694824219,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "285baaf0.7d06de"
-            ]
-        ]
-    },
-    {
-        "id": "285baaf0.7d06de",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 1315.9999694824219,
-        "y": 434.9999694824219,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "44fe2b94.9c5d94",
-                "961f42bf.beb62"
-            ]
-        ]
-    },
-    {
-        "id": "44fe2b94.9c5d94",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='`$error-message`' />\n",
-        "comments": "",
-        "x": 1450.9999694824219,
-        "y": 476,
-        "z": "65f0ae97.bfd7e8",
-        "wires": []
-    },
-    {
-        "id": "b81aef23.ced6e8",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 980.9999694824219,
-        "y": 182.99996948242188,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "5b028b69.7d6af4"
-            ]
-        ]
-    },
-    {
-        "id": "34472fd1.b14ab",
-        "type": "record",
-        "name": "record",
-        "xml": "<record plugin=\"onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'input.payload = ' + $input.payload`\" />\n<parameter name=\"field3\" value=\"`'vm-id in context=' + $vm-id`\" />\n<parameter name=\"field4\" value=\"`'volumeId in context=' + $volumeId`\" />\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 815.11669921875,
-        "y": 124,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "cf4fac38.3b932",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 636.8666687011719,
-        "y": 152.86666870117188,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "34472fd1.b14ab",
-                "e021eba0.2f5b7"
-            ]
-        ]
-    },
-    {
-        "id": "961f42bf.beb62",
-        "type": "record",
-        "name": "record",
-        "xml": "<record plugin=\"onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field3\" value=\"`'error-message = ' + $error-message`\" />\n<parameter name=\"field4\" value=\"`'error-code = ' + $error_code`\" />",
-        "comments": "",
-        "outputs": 1,
-        "x": 1440.8666687011719,
-        "y": 406.8666687011719,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "e021eba0.2f5b7",
-        "type": "execute",
-        "name": "DetachVolume",
-        "xml": "<execute plugin='org.onap.appc.adapter.iaas.ProviderAdapter' method='dettachVolume'>\n<parameter name=\"org.onap.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.onap.appc.instance.url\" value=\"`$vm-id`\" />\n<parameter name=\"org.onap.appc.identity.url\" value=\"`$identity-url`\" />\n<parameter name=\"org.onap.appc.volumeid\" value=\"`$volumeAttachment.volumeId`\" />\n<parameter name=\"org.onap.appc.device\" value=\"`$volumeAttachment.device`\" />\n<parameter name=\"org.onap.appc.tag\" value=\"`$volumeAttachment.tag`\"/>",
-        "comments": "",
-        "outputs": 1,
-        "x": 652.9999694824219,
-        "y": 238,
-        "z": "65f0ae97.bfd7e8",
-        "wires": [
-            [
-                "eda3e619.a190e",
-                "6f1b4f51.cab76"
-            ]
-        ]
-    }
-]
+[\r
+    {\r
+        "id": "d54b463c.a823b8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 93.11666870117188,\r
+        "y": 41,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "a2bb678c.5e00c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2bb678c.5e00c",\r
+        "type": "service-logic",\r
+        "name": "APPC 4.0.0",\r
+        "module": "APPC",\r
+        "version": "4.0.0",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='4.0.0'>",\r
+        "outputs": 1,\r
+        "x": 250.11666870117188,\r
+        "y": 41,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "e60f98b3.977f1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e60f98b3.977f1",\r
+        "type": "method",\r
+        "name": "DetachVolume",\r
+        "xml": "<method rpc='DetachVolumeVM' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 448.1166687011719,\r
+        "y": 43,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "e8d72dbd.c9baa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f548774.5415008",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 816.1166381835938,\r
+        "y": 252.99996948242188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "329389c7.ceb186"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "efa29456.b2b9e",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 825.1166381835938,\r
+        "y": 131.99996948242188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "26584913.762376"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85b565d0.ef33d8",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>",\r
+        "comments": "",\r
+        "x": 1372.1166381835938,\r
+        "y": 224.99996948242188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8cb513a7.354458",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='RPC dettachVolume not found' />",\r
+        "comments": "",\r
+        "x": 1133.1166381835938,\r
+        "y": 131.99996948242188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "329389c7.ceb186",\r
+        "type": "switchNode",\r
+        "name": "switch status",\r
+        "xml": "<switch test='`$VOLUME_STATUS`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1009.1166381835938,\r
+        "y": 253.99996948242188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "720cbf6d.f49518",\r
+                "1de7a2bc.3c680d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "720cbf6d.f49518",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='SUCCESS'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1191.1166381835938,\r
+        "y": 223.99996948242188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "85b565d0.ef33d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1de7a2bc.3c680d",\r
+        "type": "outcome",\r
+        "name": "ERROR",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1183.1166381835938,\r
+        "y": 382.9999694824219,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "83ea6cce.ef1b58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "83ea6cce.ef1b58",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1316.1166381835938,\r
+        "y": 383.9999694824219,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "115510d5.27d387",\r
+                "6be0b92f.7a4028"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "115510d5.27d387",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='`$error-message`' />\n",\r
+        "comments": "",\r
+        "x": 1451.1166381835938,\r
+        "y": 425,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "26584913.762376",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 981.1166381835938,\r
+        "y": 131.99996948242188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "8cb513a7.354458"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88de342c.a6a72",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'input.payload = ' + $input.payload`\" />\n<parameter name=\"field3\" value=\"`'vm-id in context=' + $vm-id`\" />\n<parameter name=\"field4\" value=\"`'volumeId in context=' + $volumeId`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 815.2333679199219,\r
+        "y": 73,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8d72dbd.c9baa",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 636.9833374023438,\r
+        "y": 101.86666870117188,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "88de342c.a6a72",\r
+                "62735c5f.2a9b9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6be0b92f.7a4028",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"level\" value=\"info\"/>\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field3\" value=\"`'error-message = ' + $error-message`\" />\n<parameter name=\"field4\" value=\"`'error-code = ' + $error_code`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1440.9833374023438,\r
+        "y": 355.8666687011719,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "62735c5f.2a9b9c",\r
+        "type": "execute",\r
+        "name": "DetachVolume",\r
+        "xml": "<execute plugin='org.onap.appc.adapter.iaas.ProviderAdapter' method='dettachVolume'>\n<parameter name=\"org.onap.appc.provider.name\" value=\"OpenStack\" />\n<parameter name=\"org.onap.appc.instance.url\" value=\"`$vm-id`\" />\n<parameter name=\"org.onap.appc.identity.url\" value=\"`$identity-url`\" />\n<parameter name=\"org.onap.appc.volumeid\" value=\"`$volumeAttachment.volumeId`\" />\n<parameter name=\"org.onap.appc.device\" value=\"`$volumeAttachment.device`\" />\n<parameter name=\"org.onap.appc.tag\" value=\"`$volumeAttachment.tag`\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 653.1166381835938,\r
+        "y": 187,\r
+        "z": "9904acd2.cfae1",\r
+        "wires": [\r
+            [\r
+                "efa29456.b2b9e",\r
+                "f548774.5415008"\r
+            ]\r
+        ]\r
+    }\r
+]\r