+<!--\r
+ ============LICENSE_START=======================================================\r
+ APPC\r
+ ================================================================================\r
+ Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.\r
+ ================================================================================\r
+ Licensed under the Apache License, Version 2.0 (the "License");\r
+ you may not use this file except in compliance with the License.\r
+ You may obtain a copy of the License at\r
+ \r
+ http://www.apache.org/licenses/LICENSE-2.0\r
+ \r
+ Unless required by applicable law or agreed to in writing, software\r
+ distributed under the License is distributed on an "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ See the License for the specific language governing permissions and\r
+ limitations under the License.\r
+ ============LICENSE_END=========================================================\r
+-->\r
+<service-logic\r
+ xmlns='http://www.onap.org/sdnc/svclogic'\r
+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='APPC' version='3.0.0'>\r
+ <method rpc='Generic_Restart' mode='sync'>\r
+ \r
+ <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+ <parameter name='fileName' value='%APPC_CONFIG_DIR%/aaiclient.properties' />\r
+ <parameter name='contextPrefix' value='prop' />\r
+ <outcome value='Other'>\r
+ <return status='failure'>\r
+ </return>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <execute plugin='org.onap.appc.dg.common.JsonDgUtil' method='flatAndAddToContext' >\r
+ <parameter name="payload" value="`$input.payload`" />\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="Failure in flattening payload Json" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'>\r
+ <parameter name="output.status.message" value="Failure in flattening payload Json" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='not-found'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="Failure in loading Json flattening plugin" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'>\r
+ <parameter name="output.status.message" value="Failure in loading Json flattening plugin" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <switch test='$input.action-identifiers.vnf-id'>\r
+ <outcome value=''>\r
+ <return status="failure">\r
+ <parameter name="error-message" value="input.action-identifiers.vnf-id is null" />\r
+ </return>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <block atomic='true'>\r
+ <set>\r
+ <parameter name='namedQueryData.instance-filters.instance-filter[0].generic-vnf.vnf-id' value='`$input.action-identifiers.vnf-id`' />\r
+ <parameter name='namedQueryData.instance-filters.instance-filter_length' value='`1`' />\r
+ </set>\r
+ <set>\r
+ <parameter name='tmp.named-query-uuid' value='037eb932-edac-48f5-9782-c19c0aa5a031' />\r
+ <parameter name='tmp.named-query-vnf-id' value='`$input.action-identifiers.vnf-id`' />\r
+ </set>\r
+ <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+ <parameter name='templateFileName' value='/opt/onap/appc/restapi/templates/aai-named-query.json' />\r
+ <parameter name='restapiUrl' value='https://aai.onap:8443/aai/search/named-query' />\r
+ <parameter name='restapiUser' value='AAI' />\r
+ <parameter name='restapiPassword' value='AAI' />\r
+ <parameter name='contentType' value='application/json' />\r
+ <parameter name='format' value='json' />\r
+ <parameter name='httpMethod' value='POST' />\r
+ <parameter name='responsePrefix' value='vnfInfo' />\r
+ <parameter name='dumpHeaders' value='true' />\r
+ <parameter name='customHttpHeaders' value='X-FromAppId=AAI-Temp-Tool,X-TransactionId=AAI-Temp-Tool' />\r
+ <!-- <parameter name='restapiUrl' value="`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module'`" /><parameter name='restapiUser' value='`$prop.controller.user`' /><parameter name='restapiPassword' value='`$prop.controller.pwd`' /><parameter name='customHttpHeaders' value='X-FromAppId=AAI-Temp-Tool,X-TransactionId=AAI-Temp-Tool' />\r
+ -->\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="Exception in running AAI Named Query" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'></return>\r
+ </block>\r
+ </outcome>\r
+ </execute>\r
+ <switch test='`$vnfInfo.inventory-response-item[0].generic-vnf.vnf-id`'>\r
+ <outcome value=''>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="Failure in retrieving VNF Hierachy" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'>\r
+ <parameter name="output.status.message" value="Failure in retrieving VNF Hierachy" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ <switch test='`$vnfInfo.inventory-response-item[0].generic-vnf.vnf-id == $input.action-identifiers.vnf-id`'>\r
+ <outcome value='false'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="Failure matching vnf-id to VNF Hierachy" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'>\r
+ <parameter name="output.status.message" value="Failure in loading Json flattening plugin" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='true'>\r
+ <block atomic='true'>\r
+ <for index='vserverIndex' start='0' end='`$vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item_length`' >\r
+ <switch test='vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item[$vserverIndex].vserver.vserver-selflink'>\r
+ <outcome value=''>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="Failure in retrieving vserver-selflink from VNF Hierachy" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'>\r
+ <parameter name="output.status.message" value="Failure in retrieving vserver-selflink from VNF Hierachy" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <switch test='vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item[$vserverIndex].inventory-response-items.inventory-response-item[0].inventory-response-items.inventory-response-item[0].cloud-region.identity-url'>\r
+ <outcome value=''>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="Failure in retrieving identity-url from VNF Hierachy" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'>\r
+ <parameter name="output.status.message" value="Failure in retrieving identity-url from VNF Hierachy" />\r
+ </return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='Other'>\r
+ <switch test='`$vm-id`'>\r
+ <outcome value='Other'>\r
+ <switch test='`$vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item[$vserverIndex].vserver.vserver-selflink == $vm-id`'>\r
+ <outcome value='true'>\r
+ <execute plugin='org.onap.appc.adapter.iaas.ProviderAdapter' method='restartServer'>\r
+ <parameter name="org.onap.appc.provider.name" value="OpenStack"/>\r
+ <parameter name="org.onap.appc.instance.url" value="`$vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item[$vserverIndex].vserver.vserver-selflink`" />\r
+ <parameter name="org.onap.appc.identity.url" value="`$vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item[$vserverIndex].inventory-response-items.inventory-response-item[0].inventory-response-items.inventory-response-item[0].cloud-region.identity-url`" />\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Failure in restart for:' + $VNF.VM[$i].URL`" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'></return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <switch test='`$RESTART_STATUS`'>\r
+ <outcome value='ERROR'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Stop : Error occoured while restarting the server:' + $VNF.VM[$i].URL`" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'></return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='CONTEXT_NOT_FOUND'>\r
+ <block atomic='true'>\r
+ <return status='failure'></return>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Stop : Context not found:' + $VNF.VM[$i].URL`" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='SUCCESS'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='reportSuccess' >\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Restart event executed successfully for ' + $VNF.VM[$i].URL`" />\r
+ <outcome value='failure'></outcome>\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </execute>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ <outcome value=''>\r
+ <execute plugin='org.onap.appc.adapter.iaas.ProviderAdapter' method='restartServer'>\r
+ <parameter name="org.onap.appc.provider.name" value="OpenStack"/>\r
+ <parameter name="org.onap.appc.instance.url" value="`$vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item[$vserverIndex].vserver.vserver-selflink`" />\r
+ <parameter name="org.onap.appc.identity.url" value="`$vnfInfo.inventory-response-item[0].inventory-response-items.inventory-response-item[$vserverIndex].inventory-response-items.inventory-response-item[0].inventory-response-items.inventory-response-item[0].cloud-region.identity-url`" />\r
+ <outcome value='failure'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Failure in restart for:' + $VNF.VM[$i].URL`" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'></return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='success'>\r
+ <switch test='`$RESTART_STATUS`'>\r
+ <outcome value='ERROR'>\r
+ <block atomic='true'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Stop : Error occoured while restarting the server:' + $VNF.VM[$i].URL`" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ <return status='failure'></return>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='CONTEXT_NOT_FOUND'>\r
+ <block atomic='true'>\r
+ <return status='failure'></return>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='report' >\r
+ <parameter name="apiVer" value="1.01"/>\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Stop : Context not found:' + $VNF.VM[$i].URL`" />\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ </block>\r
+ </outcome>\r
+ <outcome value='SUCCESS'>\r
+ <execute plugin='org.onap.appc.dg.common.DCAEReporterPlugin' method='reportSuccess' >\r
+ <parameter name="eventId" value="`$input.action-identifiers.vnf-id`" />\r
+ <parameter name="output.status.message" value="`'Restart event executed successfully for ' + $VNF.VM[$i].URL`" />\r
+ <outcome value='failure'></outcome>\r
+ <outcome value='success'></outcome>\r
+ </execute>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </execute>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </switch>\r
+ </for>\r
+ <return status='success'></return>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </block>\r
+ </outcome>\r
+ </switch>\r
+ </outcome>\r
+ </execute>\r
+ </outcome>\r
+ </execute>\r
+ </method>\r
+</service-logic>\r