\r
package org.openecomp.mso.bpmn.common.scripts;\r
\r
+import java.io.ObjectInputStream.BlockDataInputStream\r
+\r
//import groovy.util.Node;\r
\r
import javax.xml.parsers.DocumentBuilder\r
import javax.xml.parsers.DocumentBuilderFactory\r
\r
import org.apache.commons.lang3.*\r
-import org.camunda.bpm.engine.runtime.Execution\r
import org.w3c.dom.Document\r
import org.w3c.dom.Element\r
import org.w3c.dom.Node\r
\r
\r
protected String buildVfModuleParams(Map<String, String> vnfParamsMap, String sdncGetResponse, String vnfId, String vnfName,\r
- String vfModuleId, String vfModuleName, String vfModuleIndex) {\r
- \r
- //Get SDNC Response Data\r
- \r
- String data = utils.getNodeXml(sdncGetResponse, "response-data")\r
- data = data.replaceAll("<", "<")\r
- data = data.replaceAll(">", ">")\r
+ String vfModuleId, String vfModuleName, String vfModuleIndex, String environmentContext, String workloadContext) {\r
+ \r
+ //Get SDNC Response Data\r
+ \r
+ String data = utils.getNodeXml(sdncGetResponse, "response-data")\r
+ data = data.replaceAll("<", "<")\r
+ data = data.replaceAll(">", ">")\r
\r
- String serviceData = utils.getNodeXml(data, "service-data")\r
- serviceData = utils.removeXmlPreamble(serviceData)\r
- serviceData = utils.removeXmlNamespaces(serviceData)\r
- String vnfRequestInfo = utils.getNodeXml(serviceData, "vnf-request-information")\r
- String oldVnfId = utils.getNodeXml(vnfRequestInfo, "vnf-id")\r
- oldVnfId = utils.removeXmlPreamble(oldVnfId)\r
- oldVnfId = utils.removeXmlNamespaces(oldVnfId)\r
- serviceData = serviceData.replace(oldVnfId, "")\r
- def vnfId1 = utils.getNodeText1(serviceData, "vnf-id")\r
- \r
- Map<String, String> paramsMap = new HashMap<String, String>()\r
- \r
- if (vfModuleIndex != null) {\r
- paramsMap.put("vf_module_index", "${vfModuleIndex}")\r
- }\r
+ String serviceData = utils.getNodeXml(data, "service-data")\r
+ serviceData = utils.removeXmlPreamble(serviceData)\r
+ serviceData = utils.removeXmlNamespaces(serviceData)\r
+ String vnfRequestInfo = utils.getNodeXml(serviceData, "vnf-request-information")\r
+ String oldVnfId = utils.getNodeXml(vnfRequestInfo, "vnf-id")\r
+ oldVnfId = utils.removeXmlPreamble(oldVnfId)\r
+ oldVnfId = utils.removeXmlNamespaces(oldVnfId)\r
+ serviceData = serviceData.replace(oldVnfId, "")\r
+ def vnfId1 = utils.getNodeText1(serviceData, "vnf-id")\r
+ \r
+ Map<String, String> paramsMap = new HashMap<String, String>()\r
+ \r
+ if (vfModuleIndex != null) {\r
+ paramsMap.put("vf_module_index", "${vfModuleIndex}")\r
+ }\r
\r
- // Add-on data\r
- paramsMap.put("vnf_id", "${vnfId}")\r
- paramsMap.put("vnf_name", "${vnfName}")\r
- paramsMap.put("vf_module_id", "${vfModuleId}")\r
- paramsMap.put("vf_module_name", "${vfModuleName}")\r
- \r
- InputSource source = new InputSource(new StringReader(data));\r
- DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();\r
- docFactory.setNamespaceAware(true)\r
- DocumentBuilder docBuilder = docFactory.newDocumentBuilder()\r
- Document responseXml = docBuilder.parse(source)\r
+ // Add-on data\r
+ paramsMap.put("vnf_id", "${vnfId}")\r
+ paramsMap.put("vnf_name", "${vnfName}")\r
+ paramsMap.put("vf_module_id", "${vfModuleId}")\r
+ paramsMap.put("vf_module_name", "${vfModuleName}")\r
+ paramsMap.put("environment_context", "${environmentContext}")\r
+ paramsMap.put("workload_context", "${workloadContext}")\r
+ \r
+ InputSource source = new InputSource(new StringReader(data));\r
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();\r
+ docFactory.setNamespaceAware(true)\r
+ DocumentBuilder docBuilder = docFactory.newDocumentBuilder()\r
+ Document responseXml = docBuilder.parse(source)\r
\r
\r
- // Availability Zones Data\r
- \r
- NodeList aZonesList = responseXml.getElementsByTagNameNS("*", "availability-zones")\r
- String aZonePosition = "0"\r
- for (int z = 0; z < aZonesList.getLength(); z++) {\r
- Node node = aZonesList.item(z)\r
- if (node.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElement = (Element) node\r
- String aZoneValue = utils.getElementText(eElement, "availability-zone")\r
- aZonePosition = z.toString()\r
- paramsMap.put("availability_zone_${aZonePosition}", "${aZoneValue}")\r
+ // Availability Zones Data\r
+ \r
+ NodeList aZonesList = responseXml.getElementsByTagNameNS("*", "availability-zones")\r
+ String aZonePosition = "0"\r
+ for (int z = 0; z < aZonesList.getLength(); z++) {\r
+ Node node = aZonesList.item(z)\r
+ if (node.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElement = (Element) node\r
+ String aZoneValue = utils.getElementText(eElement, "availability-zone")\r
+ aZonePosition = z.toString()\r
+ paramsMap.put("availability_zone_${aZonePosition}", "${aZoneValue}")\r
+ }\r
+ }\r
+ \r
+ // Map of network-roles and network-tags from vm-networks\r
+ \r
+ NodeList vmNetworksListGlobal = responseXml.getElementsByTagNameNS("*", "vm-networks")\r
+ Map<String, String> networkRoleMap = new HashMap<String, String>()\r
+ for(int n = 0; n < vmNetworksListGlobal.getLength(); n++){\r
+ Node nodeNetworkKey = vmNetworksListGlobal.item(n)\r
+ if (nodeNetworkKey.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElementNetworkKey = (Element) nodeNetworkKey\r
+ String networkRole = utils.getElementText(eElementNetworkKey, "network-role")\r
+ String networkRoleValue = utils.getElementText(eElementNetworkKey, "network-role-tag")\r
+ if (networkRoleValue.isEmpty()) {\r
+ networkRoleValue = networkRole\r
}\r
+ networkRoleMap.put(networkRole, networkRoleValue) \r
}\r
+ } \r
\r
- // VNF Networks Data\r
- \r
- StringBuilder sbNet = new StringBuilder()\r
- \r
- NodeList vnfNetworkList = responseXml.getElementsByTagNameNS("*", "vnf-networks")\r
- for (int x = 0; x < vnfNetworkList.getLength(); x++) {\r
- Node node = vnfNetworkList.item(x)\r
- if (node.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElement = (Element) node\r
- String vnfNetworkKey = utils.getElementText(eElement, "network-role")\r
- String vnfNetworkNeutronIdValue = utils.getElementText(eElement, "neutron-id")\r
- String vnfNetworkNetNameValue = utils.getElementText(eElement, "network-name")\r
- String vnfNetworkSubNetIdValue = utils.getElementText(eElement, "subnet-id")\r
- String vnfNetworkV6SubNetIdValue = utils.getElementText(eElement, "ipv6-subnet-id")\r
- String vnfNetworkNetFqdnValue = utils.getElementText(eElement, "contrail-network-fqdn")\r
- paramsMap.put("${vnfNetworkKey}_net_id", "${vnfNetworkNeutronIdValue}")\r
- paramsMap.put("${vnfNetworkKey}_net_name", "${vnfNetworkNetNameValue}")\r
- paramsMap.put("${vnfNetworkKey}_subnet_id", "${vnfNetworkSubNetIdValue}")\r
- paramsMap.put("${vnfNetworkKey}_v6_subnet_id", "${vnfNetworkV6SubNetIdValue}")\r
- paramsMap.put("${vnfNetworkKey}_net_fqdn", "${vnfNetworkNetFqdnValue}")\r
- \r
- NodeList sriovVlanFilterList = eElement.getElementsByTagNameNS("*","sriov-vlan-filter-list")\r
- StringBuffer sriovFilterBuf = new StringBuffer()\r
- String values = ""\r
- for(int i = 0; i < sriovVlanFilterList.getLength(); i++){\r
- Node node1 = sriovVlanFilterList.item(i)\r
- if (node1.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElement1 = (Element) node1\r
- String value = utils.getElementText(eElement1, "sriov-vlan-filter")\r
- if (i != sriovVlanFilterList.getLength() - 1) {\r
- values = sriovFilterBuf.append(value + ",")\r
- }\r
- else {\r
- values = sriovFilterBuf.append(value);\r
- }\r
+ // VNF Networks Data\r
+ \r
+ StringBuilder sbNet = new StringBuilder()\r
+ \r
+ NodeList vnfNetworkList = responseXml.getElementsByTagNameNS("*", "vnf-networks")\r
+ for (int x = 0; x < vnfNetworkList.getLength(); x++) {\r
+ Node node = vnfNetworkList.item(x)\r
+ if (node.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElement = (Element) node \r
+ String vnfNetworkKey = utils.getElementText(eElement, "network-role-tag")\r
+ String networkRole = utils.getElementText(eElement, "network-role")\r
+ if (vnfNetworkKey.isEmpty()) {\r
+ vnfNetworkKey = networkRoleMap.get(networkRole)\r
+ if (vnfNetworkKey == null || vnfNetworkKey.isEmpty()) {\r
+ vnfNetworkKey = networkRole\r
+ } \r
+ } \r
+ String vnfNetworkNeutronIdValue = utils.getElementText(eElement, "neutron-id")\r
+ String vnfNetworkNetNameValue = utils.getElementText(eElement, "network-name")\r
+ String vnfNetworkSubNetIdValue = utils.getElementText(eElement, "subnet-id")\r
+ String vnfNetworkV6SubNetIdValue = utils.getElementText(eElement, "ipv6-subnet-id")\r
+ String vnfNetworkNetFqdnValue = utils.getElementText(eElement, "contrail-network-fqdn")\r
+ paramsMap.put("${vnfNetworkKey}_net_id", "${vnfNetworkNeutronIdValue}")\r
+ paramsMap.put("${vnfNetworkKey}_net_name", "${vnfNetworkNetNameValue}")\r
+ paramsMap.put("${vnfNetworkKey}_subnet_id", "${vnfNetworkSubNetIdValue}")\r
+ paramsMap.put("${vnfNetworkKey}_v6_subnet_id", "${vnfNetworkV6SubNetIdValue}")\r
+ paramsMap.put("${vnfNetworkKey}_net_fqdn", "${vnfNetworkNetFqdnValue}")\r
+ \r
+ NodeList sriovVlanFilterList = eElement.getElementsByTagNameNS("*","sriov-vlan-filter-list")\r
+ StringBuffer sriovFilterBuf = new StringBuffer()\r
+ String values = ""\r
+ for(int i = 0; i < sriovVlanFilterList.getLength(); i++){\r
+ Node node1 = sriovVlanFilterList.item(i)\r
+ if (node1.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElement1 = (Element) node1\r
+ String value = utils.getElementText(eElement1, "sriov-vlan-filter")\r
+ if (i != sriovVlanFilterList.getLength() - 1) {\r
+ values = sriovFilterBuf.append(value + ",")\r
}\r
- }\r
- if (!values.isEmpty()) {\r
- paramsMap.put("${vnfNetworkKey}_ATT_VF_VLAN_FILTER", "${values}")\r
+ else {\r
+ values = sriovFilterBuf.append(value);\r
}\r
}\r
- }\r
+ }\r
+ if (!values.isEmpty()) {\r
+ paramsMap.put("${vnfNetworkKey}_ATT_VF_VLAN_FILTER", "${values}")\r
+ }\r
+ }\r
+ }\r
\r
- // VNF-VMS Data\r
- \r
- def key\r
- def value\r
- def networkKey\r
- def networkValue\r
- def floatingIPKey\r
- def floatingIPKeyValue\r
- def floatingIPV6Key\r
- def floatingIPV6KeyValue\r
- StringBuilder sb = new StringBuilder()\r
+ // VNF-VMS Data\r
+ \r
+ def key\r
+ def value\r
+ def networkKey\r
+ def networkValue\r
+ def floatingIPKey\r
+ def floatingIPKeyValue\r
+ def floatingIPV6Key\r
+ def floatingIPV6KeyValue\r
+ StringBuilder sb = new StringBuilder()\r
\r
- NodeList vmsList = responseXml.getElementsByTagNameNS("*","vnf-vms")\r
- for (int x = 0; x < vmsList.getLength(); x++) {\r
- Node node = vmsList.item(x)\r
- if (node.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElement = (Element) node\r
- key = utils.getElementText(eElement, "vm-type")\r
- String values\r
- String position = "0"\r
- StringBuilder sb1 = new StringBuilder()\r
- NodeList valueList = eElement.getElementsByTagNameNS("*","vm-names")\r
- NodeList vmNetworksList = eElement.getElementsByTagNameNS("*","vm-networks")\r
- for(int i = 0; i < valueList.getLength(); i++){\r
- Node node1 = valueList.item(i)\r
- if (node1.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElement1 = (Element) node1\r
- value = utils.getElementText(eElement1, "vm-name")\r
- if (i != valueList.getLength() - 1) {\r
- values = sb1.append(value + ",")\r
- }\r
- else {\r
- values = sb1.append(value);\r
- }\r
- position = i.toString()\r
- paramsMap.put("${key}_name_${position}", "${value}")\r
+ NodeList vmsList = responseXml.getElementsByTagNameNS("*","vnf-vms")\r
+ for (int x = 0; x < vmsList.getLength(); x++) {\r
+ Node node = vmsList.item(x)\r
+ if (node.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElement = (Element) node\r
+ key = utils.getElementText(eElement, "vm-type")\r
+ String values\r
+ String position = "0"\r
+ StringBuilder sb1 = new StringBuilder()\r
+ NodeList valueList = eElement.getElementsByTagNameNS("*","vm-names")\r
+ NodeList vmNetworksList = eElement.getElementsByTagNameNS("*","vm-networks")\r
+ for(int i = 0; i < valueList.getLength(); i++){\r
+ Node node1 = valueList.item(i)\r
+ if (node1.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElement1 = (Element) node1\r
+ value = utils.getElementText(eElement1, "vm-name")\r
+ if (i != valueList.getLength() - 1) {\r
+ values = sb1.append(value + ",")\r
}\r
+ else {\r
+ values = sb1.append(value);\r
+ }\r
+ position = i.toString()\r
+ paramsMap.put("${key}_name_${position}", "${value}")\r
}\r
- for(int n = 0; n < vmNetworksList.getLength(); n++){\r
- String floatingIpKeyValueStr = ""\r
- String floatingIpV6KeyValueStr = ""\r
- Node nodeNetworkKey = vmNetworksList.item(n)\r
- if (nodeNetworkKey.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElementNetworkKey = (Element) nodeNetworkKey\r
- String ipAddressValues\r
- String ipV6AddressValues\r
- String networkPosition = "0"\r
- StringBuilder sb2 = new StringBuilder()\r
- StringBuilder sb3 = new StringBuilder()\r
- StringBuilder sb4 = new StringBuilder()\r
+ }\r
+ for(int n = 0; n < vmNetworksList.getLength(); n++){\r
+ String floatingIpKeyValueStr = ""\r
+ String floatingIpV6KeyValueStr = ""\r
+ Node nodeNetworkKey = vmNetworksList.item(n)\r
+ if (nodeNetworkKey.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElementNetworkKey = (Element) nodeNetworkKey\r
+ String ipAddressValues\r
+ String ipV6AddressValues\r
+ String networkPosition = "0"\r
+ StringBuilder sb2 = new StringBuilder()\r
+ StringBuilder sb3 = new StringBuilder()\r
+ StringBuilder sb4 = new StringBuilder()\r
+ networkKey = utils.getElementText(eElementNetworkKey, "network-role-tag")\r
+ if (networkKey.isEmpty()) {\r
networkKey = utils.getElementText(eElementNetworkKey, "network-role")\r
- floatingIPKey = key + '_' + networkKey + '_floating_ip'\r
- floatingIPKeyValue = utils.getElementText(eElementNetworkKey, "floating-ip")\r
- if(!floatingIPKeyValue.isEmpty()){\r
- paramsMap.put("$floatingIPKey", "$floatingIPKeyValue")\r
- }\r
- floatingIPV6Key = key + '_' + networkKey + '_floating_v6_ip'\r
- floatingIPV6KeyValue = utils.getElementText(eElementNetworkKey, "floating-ip-v6")\r
- if(!floatingIPV6KeyValue.isEmpty()){\r
- paramsMap.put("$floatingIPV6Key", "$floatingIPV6KeyValue")\r
- }\r
- NodeList networkIpsList = eElementNetworkKey.getElementsByTagNameNS("*","network-ips")\r
- for(int a = 0; a < networkIpsList.getLength(); a++){\r
- Node ipAddress = networkIpsList.item(a)\r
- if (ipAddress.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElementIpAddress = (Element) ipAddress\r
- String ipAddressValue = utils.getElementText(eElementIpAddress, "ip-address")\r
- if (a != networkIpsList.getLength() - 1) {\r
- ipAddressValues = sb2.append(ipAddressValue + ",")\r
- }\r
- else {\r
- ipAddressValues = sb2.append(ipAddressValue);\r
- }\r
- networkPosition = a.toString()\r
- paramsMap.put("${key}_${networkKey}_ip_${networkPosition}", "${ipAddressValue}")\r
+ }\r
+ floatingIPKey = key + '_' + networkKey + '_floating_ip'\r
+ floatingIPKeyValue = utils.getElementText(eElementNetworkKey, "floating-ip")\r
+ if(!floatingIPKeyValue.isEmpty()){\r
+ paramsMap.put("$floatingIPKey", "$floatingIPKeyValue")\r
+ }\r
+ floatingIPV6Key = key + '_' + networkKey + '_floating_v6_ip'\r
+ floatingIPV6KeyValue = utils.getElementText(eElementNetworkKey, "floating-ip-v6")\r
+ if(!floatingIPV6KeyValue.isEmpty()){\r
+ paramsMap.put("$floatingIPV6Key", "$floatingIPV6KeyValue")\r
+ }\r
+ NodeList networkIpsList = eElementNetworkKey.getElementsByTagNameNS("*","network-ips")\r
+ for(int a = 0; a < networkIpsList.getLength(); a++){\r
+ Node ipAddress = networkIpsList.item(a)\r
+ if (ipAddress.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElementIpAddress = (Element) ipAddress\r
+ String ipAddressValue = utils.getElementText(eElementIpAddress, "ip-address")\r
+ if (a != networkIpsList.getLength() - 1) {\r
+ ipAddressValues = sb2.append(ipAddressValue + ",")\r
}\r
- }\r
- \r
- paramsMap.put("${key}_${networkKey}_ips", "${ipAddressValues}")\r
- \r
- NodeList interfaceRoutePrefixesList = eElementNetworkKey.getElementsByTagNameNS("*","interface-route-prefixes")\r
- String interfaceRoutePrefixValues = sb3.append("[")\r
- \r
- for(int a = 0; a < interfaceRoutePrefixesList.getLength(); a++){\r
- Node interfaceRoutePrefix = interfaceRoutePrefixesList.item(a)\r
- if (interfaceRoutePrefix.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElementInterfaceRoutePrefix = (Element) interfaceRoutePrefix\r
- String interfaceRoutePrefixValue = utils.getElementText(eElementInterfaceRoutePrefix, "interface-route-prefix-cidr")\r
- if (interfaceRoutePrefixValue == null || interfaceRoutePrefixValue.isEmpty()) {\r
- interfaceRoutePrefixValue = utils.getElementText(eElementInterfaceRoutePrefix, "interface-route-prefix")\r
- }\r
- if (a != interfaceRoutePrefixesList.getLength() - 1) {\r
- interfaceRoutePrefixValues = sb3.append("{\"interface_route_table_routes_route_prefix\": \"" + interfaceRoutePrefixValue + "\"}" + ",")\r
- }\r
- else {\r
- interfaceRoutePrefixValues = sb3.append("{\"interface_route_table_routes_route_prefix\": \"" + interfaceRoutePrefixValue + "\"}")\r
- }\r
+ else {\r
+ ipAddressValues = sb2.append(ipAddressValue);\r
}\r
+ networkPosition = a.toString()\r
+ paramsMap.put("${key}_${networkKey}_ip_${networkPosition}", "${ipAddressValue}")\r
}\r
- interfaceRoutePrefixValues = sb3.append("]")\r
- if (interfaceRoutePrefixesList.getLength() > 0) {\r
- paramsMap.put("${key}_${networkKey}_route_prefixes", "${interfaceRoutePrefixValues}")\r
+ }\r
+ \r
+ paramsMap.put("${key}_${networkKey}_ips", "${ipAddressValues}")\r
+ \r
+ NodeList interfaceRoutePrefixesList = eElementNetworkKey.getElementsByTagNameNS("*","interface-route-prefixes")\r
+ String interfaceRoutePrefixValues = sb3.append("[")\r
+ \r
+ for(int a = 0; a < interfaceRoutePrefixesList.getLength(); a++){\r
+ Node interfaceRoutePrefix = interfaceRoutePrefixesList.item(a)\r
+ if (interfaceRoutePrefix.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElementInterfaceRoutePrefix = (Element) interfaceRoutePrefix\r
+ String interfaceRoutePrefixValue = utils.getElementText(eElementInterfaceRoutePrefix, "interface-route-prefix-cidr")\r
+ if (interfaceRoutePrefixValue == null || interfaceRoutePrefixValue.isEmpty()) {\r
+ interfaceRoutePrefixValue = utils.getElementText(eElementInterfaceRoutePrefix, "interface-route-prefix")\r
+ }\r
+ if (a != interfaceRoutePrefixesList.getLength() - 1) {\r
+ interfaceRoutePrefixValues = sb3.append("{\"interface_route_table_routes_route_prefix\": \"" + interfaceRoutePrefixValue + "\"}" + ",")\r
+ }\r
+ else {\r
+ interfaceRoutePrefixValues = sb3.append("{\"interface_route_table_routes_route_prefix\": \"" + interfaceRoutePrefixValue + "\"}")\r
+ }\r
}\r
- \r
- NodeList networkIpsV6List = eElementNetworkKey.getElementsByTagNameNS("*","network-ips-v6")\r
- for(int a = 0; a < networkIpsV6List.getLength(); a++){\r
- Node ipV6Address = networkIpsV6List.item(a)\r
- if (ipV6Address.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElementIpV6Address = (Element) ipV6Address\r
- String ipV6AddressValue = utils.getElementText(eElementIpV6Address, "ip-address-ipv6")\r
- if (a != networkIpsV6List.getLength() - 1) {\r
- ipV6AddressValues = sb4.append(ipV6AddressValue + ",")\r
- }\r
- else {\r
- ipV6AddressValues = sb4.append(ipV6AddressValue);\r
- }\r
- networkPosition = a.toString()\r
- paramsMap.put("${key}_${networkKey}_v6_ip_${networkPosition}", "${ipV6AddressValue}")\r
+ }\r
+ interfaceRoutePrefixValues = sb3.append("]")\r
+ if (interfaceRoutePrefixesList.getLength() > 0) {\r
+ paramsMap.put("${key}_${networkKey}_route_prefixes", "${interfaceRoutePrefixValues}")\r
+ }\r
+ \r
+ NodeList networkIpsV6List = eElementNetworkKey.getElementsByTagNameNS("*","network-ips-v6")\r
+ for(int a = 0; a < networkIpsV6List.getLength(); a++){\r
+ Node ipV6Address = networkIpsV6List.item(a)\r
+ if (ipV6Address.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElementIpV6Address = (Element) ipV6Address\r
+ String ipV6AddressValue = utils.getElementText(eElementIpV6Address, "ip-address-ipv6")\r
+ if (a != networkIpsV6List.getLength() - 1) {\r
+ ipV6AddressValues = sb4.append(ipV6AddressValue + ",")\r
}\r
+ else {\r
+ ipV6AddressValues = sb4.append(ipV6AddressValue);\r
+ }\r
+ networkPosition = a.toString()\r
+ paramsMap.put("${key}_${networkKey}_v6_ip_${networkPosition}", "${ipV6AddressValue}")\r
}\r
- paramsMap.put("${key}_${networkKey}_v6_ips", "${ipV6AddressValues}")\r
}\r
+ paramsMap.put("${key}_${networkKey}_v6_ips", "${ipV6AddressValues}")\r
}\r
- paramsMap.put("${key}_names", "${values}")\r
}\r
+ paramsMap.put("${key}_names", "${values}")\r
}\r
- //SDNC Response Params\r
- String sdncResponseParams = ""\r
- List<String> sdncResponseParamsToSkip = ["vnf_id", "vf_module_id", "vnf_name", "vf_module_name"]\r
- String vnfParamsChildNodes = utils.getChildNodes(data, "vnf-parameters")\r
- if(vnfParamsChildNodes == null || vnfParamsChildNodes.length() < 1){\r
- // No SDNC params\r
- }else{\r
- NodeList paramsList = responseXml.getElementsByTagNameNS("*", "vnf-parameters")\r
- for (int z = 0; z < paramsList.getLength(); z++) {\r
- Node node = paramsList.item(z)\r
- Element eElement = (Element) node\r
- String vnfParameterName = utils.getElementText(eElement, "vnf-parameter-name")\r
- if (!sdncResponseParamsToSkip.contains(vnfParameterName)) {\r
- String vnfParameterValue = utils.getElementText(eElement, "vnf-parameter-value")\r
- paramsMap.put("${vnfParameterName}", "${vnfParameterValue}")\r
- }\r
+ }\r
+ //SDNC Response Params\r
+ String sdncResponseParams = ""\r
+ List<String> sdncResponseParamsToSkip = ["vnf_id", "vf_module_id", "vnf_name", "vf_module_name"]\r
+ String vnfParamsChildNodes = utils.getChildNodes(data, "vnf-parameters")\r
+ if(vnfParamsChildNodes == null || vnfParamsChildNodes.length() < 1){\r
+ // No SDNC params\r
+ }else{\r
+ NodeList paramsList = responseXml.getElementsByTagNameNS("*", "vnf-parameters")\r
+ for (int z = 0; z < paramsList.getLength(); z++) {\r
+ Node node = paramsList.item(z)\r
+ Element eElement = (Element) node\r
+ String vnfParameterName = utils.getElementText(eElement, "vnf-parameter-name")\r
+ if (!sdncResponseParamsToSkip.contains(vnfParameterName)) {\r
+ String vnfParameterValue = utils.getElementText(eElement, "vnf-parameter-value")\r
+ paramsMap.put("${vnfParameterName}", "${vnfParameterValue}")\r
}\r
}\r
- \r
+ }\r
+ \r
// Parameters received from the request should overwrite any parameters received from SDNC\r
if (vnfParamsMap != null) {\r
for (Map.Entry<String, String> entry : vnfParamsMap.entrySet()) {\r
String paramValue = entry.getValue()\r
paramsXml =\r
"""<entry>\r
- <key>${paramName}</key>\r
- <value>${paramValue}</value>\r
- </entry>\r
- """\r
-\r
+ <key>${paramName}</key>\r
+ <value>${paramValue}</value>\r
+ </entry>\r
+ """\r
+ \r
vfModuleParams = sbParams.append(paramsXml)\r
}\r
\r
return vfModuleParams\r
- \r
+ \r
}\r
- \r
+ \r
\r
/*\r
* Parses VNF parameters passed in on the incoming requests and SDNC parameters returned from SDNC get response\r
*/ \r
\r
protected String buildVfModuleParamsFromCombinedTopologies(Map<String, String> vnfParamsMap, String vnfSdncGetResponse, String vfmoduleSdncGetResponse, String vnfId, String vnfName,\r
- String vfModuleId, String vfModuleName, String vfModuleIndex) {\r
+ String vfModuleId, String vfModuleName, String vfModuleIndex, String environmentContext, String workloadContext) {\r
\r
// Set up initial parameters\r
\r
paramsMap.put("vnf_id", "${vnfId}")\r
paramsMap.put("vnf_name", "${vnfName}")\r
paramsMap.put("vf_module_id", "${vfModuleId}")\r
- paramsMap.put("vf_module_name", "${vfModuleName}") \r
+ paramsMap.put("vf_module_name", "${vfModuleName}")\r
+ paramsMap.put("environment_context","${environmentContext}") \r
+ paramsMap.put("workload_context", "${workloadContext}") \r
\r
//Get SDNC Response Data for VNF\r
\r
paramsMap.put("availability_zone_${aZonePosition}", "${aZoneValue}")\r
}\r
}\r
+ \r
+ //Get SDNC Response Data for VF Module\r
+ \r
+ String vfModuleData = utils.getNodeXml(vfmoduleSdncGetResponse, "response-data")\r
+ vfModuleData = vfModuleData.replaceAll("<", "<")\r
+ vfModuleData = vfModuleData.replaceAll(">", ">")\r
+ \r
+ String vfModuleTopology = utils.getNodeXml(vfModuleData, "vf-module-topology")\r
+ vfModuleTopology = utils.removeXmlPreamble(vfModuleTopology)\r
+ vfModuleTopology = utils.removeXmlNamespaces(vfModuleTopology)\r
+ String vfModuleTopologyIdentifier = utils.getNodeXml(vfModuleTopology, "vf-module-topology-identifier")\r
+ \r
+ InputSource sourceVfModule = new InputSource(new StringReader(vfModuleData));\r
+ DocumentBuilderFactory docFactoryVfModule = DocumentBuilderFactory.newInstance();\r
+ docFactoryVfModule.setNamespaceAware(true)\r
+ DocumentBuilder docBuilderVfModule = docFactoryVfModule.newDocumentBuilder()\r
+ Document responseXmlVfModule = docBuilderVfModule.parse(sourceVfModule)\r
+ \r
+ // Map of network-roles and network-tags from vm-networks\r
+ \r
+ NodeList vmNetworksListGlobal = responseXmlVfModule.getElementsByTagNameNS("*", "vm-networks")\r
+ Map<String, String> networkRoleMap = new HashMap<String, String>()\r
+ for(int n = 0; n < vmNetworksListGlobal.getLength(); n++){\r
+ Node nodeNetworkKey = vmNetworksListGlobal.item(n)\r
+ if (nodeNetworkKey.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElementNetworkKey = (Element) nodeNetworkKey\r
+ String networkRole = utils.getElementText(eElementNetworkKey, "network-role")\r
+ String networkRoleValue = utils.getElementText(eElementNetworkKey, "network-role-tag")\r
+ if (networkRoleValue.isEmpty()) {\r
+ networkRoleValue = networkRole\r
+ }\r
+ networkRoleMap.put(networkRole, networkRoleValue)\r
+ }\r
+ } \r
\r
// VNF Networks Data\r
\r
for (int x = 0; x < vnfNetworkList.getLength(); x++) {\r
Node node = vnfNetworkList.item(x)\r
if (node.getNodeType() == Node.ELEMENT_NODE) {\r
- Element eElement = (Element) node\r
- String vnfNetworkKey = utils.getElementText(eElement, "network-role")\r
+ Element eElement = (Element) node \r
+ String vnfNetworkKey = utils.getElementText(eElement, "network-role-tag")\r
+ String networkRole = utils.getElementText(eElement, "network-role")\r
+ if (vnfNetworkKey.isEmpty()) {\r
+ vnfNetworkKey = networkRoleMap.get(networkRole)\r
+ if (vnfNetworkKey == null || vnfNetworkKey.isEmpty()) {\r
+ vnfNetworkKey = networkRole\r
+ } \r
+ } \r
String vnfNetworkNeutronIdValue = utils.getElementText(eElement, "neutron-id")\r
String vnfNetworkNetNameValue = utils.getElementText(eElement, "network-name")\r
String vnfNetworkSubNetIdValue = utils.getElementText(eElement, "subnet-id")\r
}\r
}\r
\r
- //Get SDNC Response Data for VF Module\r
- \r
- String vfModuleData = utils.getNodeXml(vfmoduleSdncGetResponse, "response-data")\r
- vfModuleData = vfModuleData.replaceAll("<", "<")\r
- vfModuleData = vfModuleData.replaceAll(">", ">")\r
- \r
- String vfModuleTopology = utils.getNodeXml(vfModuleData, "vf-module-topology")\r
- vfModuleTopology = utils.removeXmlPreamble(vfModuleTopology)\r
- vfModuleTopology = utils.removeXmlNamespaces(vfModuleTopology)\r
- String vfModuleTopologyIdentifier = utils.getNodeXml(vfModuleTopology, "vf-module-topology-identifier")\r
\r
- InputSource sourceVfModule = new InputSource(new StringReader(vfModuleData));\r
- DocumentBuilderFactory docFactoryVfModule = DocumentBuilderFactory.newInstance();\r
- docFactoryVfModule.setNamespaceAware(true)\r
- DocumentBuilder docBuilderVfModule = docFactoryVfModule.newDocumentBuilder()\r
- Document responseXmlVfModule = docBuilderVfModule.parse(sourceVfModule)\r
\r
// VMS Data\r
\r
StringBuilder sb2 = new StringBuilder()\r
StringBuilder sb3 = new StringBuilder()\r
StringBuilder sb4 = new StringBuilder()\r
- networkKey = utils.getElementText(eElementNetworkKey, "network-role")\r
+ networkKey = utils.getElementText(eElementNetworkKey, "network-role-tag")\r
+ if (networkKey.isEmpty()) {\r
+ networkKey = utils.getElementText(eElementNetworkKey, "network-role")\r
+ }\r
floatingIPKey = key + '_' + networkKey + '_floating_ip'\r
floatingIPKeyValue = utils.getElementText(eElementNetworkKey, "floating-ip")\r
if(!floatingIPKeyValue.isEmpty()){\r
aZones = sbAZone.append(aZoneXml)\r
}\r
}\r
+ \r
+ // Map of network-roles and network-tags from vm-networks\r
+ \r
+ NodeList vmNetworksListGlobal = responseXml.getElementsByTagNameNS("*", "vm-networks")\r
+ Map<String, String> networkRoleMap = new HashMap<String, String>()\r
+ for(int n = 0; n < vmNetworksListGlobal.getLength(); n++){\r
+ Node nodeNetworkKey = vmNetworksListGlobal.item(n)\r
+ if (nodeNetworkKey.getNodeType() == Node.ELEMENT_NODE) {\r
+ Element eElementNetworkKey = (Element) nodeNetworkKey\r
+ String networkRole = utils.getElementText(eElementNetworkKey, "network-role")\r
+ String networkRoleValue = utils.getElementText(eElementNetworkKey, "network-role-tag")\r
+ if (networkRoleValue.isEmpty()) {\r
+ networkRoleValue = networkRole\r
+ }\r
+ networkRoleMap.put(networkRole, networkRoleValue)\r
+ }\r
+ }\r
\r
// VNF Networks Data\r
String vnfNetworkNetId = ""\r
Node node = vnfNetworkList.item(x)\r
if (node.getNodeType() == Node.ELEMENT_NODE) {\r
Element eElement = (Element) node\r
- String vnfNetworkKey = utils.getElementText(eElement, "network-role")\r
+ String vnfNetworkKey = utils.getElementText(eElement, "network-role-tag")\r
+ String networkRole = utils.getElementText(eElement, "network-role")\r
+ if (vnfNetworkKey.isEmpty()) {\r
+ vnfNetworkKey = networkRoleMap.get(networkRole)\r
+ if (vnfNetworkKey == null || vnfNetworkKey.isEmpty()) {\r
+ vnfNetworkKey = networkRole\r
+ } \r
+ }\r
String vnfNetworkNeutronIdValue = utils.getElementText(eElement, "neutron-id")\r
String vnfNetworkNetNameValue = utils.getElementText(eElement, "network-name")\r
String vnfNetworkSubNetIdValue = utils.getElementText(eElement, "subnet-id")\r
StringBuilder sb2 = new StringBuilder()\r
StringBuilder sb3 = new StringBuilder()\r
StringBuilder sb4 = new StringBuilder()\r
- networkKey = utils.getElementText(eElementNetworkKey, "network-role")\r
+ networkKey = utils.getElementText(eElementNetworkKey, "network-role-tag")\r
+ if (networkKey.isEmpty()) {\r
+ networkKey = utils.getElementText(eElementNetworkKey, "network-role")\r
+ }\r
floatingIPKey = key + '_' + networkKey + '_floating_ip'\r
floatingIPKeyValue = utils.getElementText(eElementNetworkKey, "floating-ip")\r
if(!floatingIPKeyValue.isEmpty()){\r