/*-\r
* ============LICENSE_START=======================================================\r
- * OPENECOMP - MSO\r
+ * ONAP - SO\r
* ================================================================================\r
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
* ================================================================================\r
import javax.xml.transform.stream.StreamResult\r
\r
import org.camunda.bpm.engine.delegate.BpmnError\r
-import org.camunda.bpm.engine.runtime.Execution\r
+import org.camunda.bpm.engine.delegate.DelegateExecution\r
import org.w3c.dom.Document\r
import org.w3c.dom.Element\r
\r
import org.xml.sax.InputSource\r
\r
import org.camunda.bpm.engine.delegate.BpmnError\r
-import org.camunda.bpm.engine.runtime.Execution\r
+import org.camunda.bpm.engine.delegate.DelegateExecution\r
import org.openecomp.mso.bpmn.common.scripts.AbstractServiceTaskProcessor;\r
import org.w3c.dom.Document\r
import org.w3c.dom.Element\r
if (orchestrationStatus == "PendingDelete" || orchestrationStatus == "pending-delete") {\r
// skip, do not include in processing, remove!!!\r
} else {\r
- def subnetList = ["subnet-id", "neutron-subnet-id", "gateway-address", "network-start-address", "cidr-mask", "ip-version", "orchestration-status", "dhcp-enabled", "dhcp-start", "dhcp-end", "resource-version", "subnet-name"]\r
+ def subnetList = ["subnet-id", "neutron-subnet-id", "gateway-address", "network-start-address", "cidr-mask", "ip-version", "orchestration-status", "dhcp-enabled", "dhcp-start", "dhcp-end", "resource-version", "subnet-name", "ip-assignment-direction", "host-routes"]\r
rebuildingSubnets += buildSubNetworkElements(subnetXml, createNetworkResponse, subnetList, "subnet")\r
} \r
}\r
if (orchestrationStatus == "pending-delete" || orchestrationStatus == "PendingDelete") {\r
// skip, do not include in processing, remove!!!\r
} else {\r
- def subnetList = ["dhcp-start", "dhcp-end", "network-start-address", "cidr-mask", "dhcp-enabled", "gateway-address", "ip-version", "subnet-id", "subnet-name"]\r
+ def subnetList = ["dhcp-start", "dhcp-end", "network-start-address", "cidr-mask", "dhcp-enabled", "gateway-address", "ip-version", "subnet-id", "subnet-name", "ip-assignment-direction", "host-routes"]\r
rebuildingSubnets += buildSubNetworkElements(subnetXml, subnetList, "subnets")\r
//rebuildingSubnets += buildSubNetworkElements(subnetXml, subnetList, "")\r
} \r
if (element=="neutron-subnet-id") {\r
// skip\r
} else {\r
- xmlBuild += "<"+element+">"+var.toString()+"</"+element+">"\r
+ if (element=="host-routes") {\r
+ if (subnetXml.contains("host-routes")) {\r
+ List elementRoute = ["host-route-id", "route-prefix", "next-hop", "next-hop-type", "resource-version"]\r
+ xmlBuild += buildXMLElements(subnetXml, "host-routes", "host-route", elementRoute)\r
+ }\r
+ } else { \r
+ xmlBuild += "<"+element+">"+var.toString()+"</"+element+">"\r
+ } \r
}\r
}\r
}\r
if ((element == "subnet-name") && (var != null)) {\r
xmlBuild += "<subnetName>"+var.toString()+"</subnetName>"\r
}\r
+ if ((element == "ip-assignment-direction") && (var != null)) {\r
+ xmlBuild += "<addrFromStart>"+var.toString()+"</addrFromStart>"\r
+ }\r
+ if (element == "host-routes") {\r
+ def routes = ""\r
+ if (subnetXml.contains("host-routes")) {\r
+ routes = buildHostRoutes(subnetXml)\r
+ }\r
+ xmlBuild += routes \r
+ } \r
+ \r
}\r
}\r
if (parentName != "") {\r
return xmlBuild\r
}\r
\r
+ // rebuild host-routes\r
+ def buildHostRoutes(subnetXml) {\r
+ List routeElementList = ["host-route-id", "route-prefix", "next-hop", "next-hop-type", "resource-version"]\r
+ def hostRoutes = buildXMLElements(subnetXml, "host-routes", "host-route", routeElementList)\r
+ def buildHostRoutes = ""\r
+ def var = ""\r
+ if (hostRoutes!=null) {\r
+ def routesData = new XmlSlurper().parseText(hostRoutes)\r
+ def routes = routesData.'**'.findAll {it.name() == "host-route"}\r
+ def routesSize = routes.size()\r
+ for (i in 0..routesSize-1) {\r
+ buildHostRoutes += "<hostRoutes>"\r
+ def route = routes[i]\r
+ def routeXml = XmlUtil.serialize(route)\r
+ List elementList = ["route-prefix", "next-hop"]\r
+ for (element in elementList) {\r
+ def xml= new XmlSlurper().parseText(routeXml)\r
+ var = xml.'**'.find {it.name() == element}\r
+ if (element == "route-prefix") {\r
+ buildHostRoutes += "<prefix>"+var.toString()+"</prefix>"\r
+ }\r
+ if (element == "next-hop") {\r
+ buildHostRoutes += "<nextHop>"+var.toString()+"</nextHop>"\r
+ }\r
+ }\r
+ buildHostRoutes += "</hostRoutes>"\r
+ } \r
+ } \r
+ return buildHostRoutes \r
+ \r
+ }\r
+ \r
// rebuild ctag-assignments\r
def rebuildCtagAssignments(xmlInput) {\r
def rebuildingCtagAssignments = ""\r
return value\r
}\r
\r
- public boolean isRollbackEnabled (Execution execution, String payloadXml) {\r
+ public boolean isRollbackEnabled (DelegateExecution execution, String payloadXml) {\r
\r
def rollbackEnabled = false\r
def rollbackValueSet = false\r
/**\r
* This method extracts the version for the the given ip-version.\r
*\r
- * @param String ipvVersion - IP protocols version (ex: ipv4 or ipv6)\r
+ * @param String ipvVersion - IP protocols version (ex: ipv4 or ipv6 or 4 or 6)\r
* @return String version - digit version (ex: 4 or 6)\r
*/\r
\r
public String getIpvVersion (String ipvVersion) {\r
\r
String version = ""\r
- if (ipvVersion.isNumber()) {\r
- version = ipvVersion\r
- } else {\r
- version = ipvVersion.substring(ipvVersion.indexOf("ipv")+3)\r
+ try {\r
+ if (ipvVersion.isNumber()) {\r
+ version = ipvVersion\r
+ } else {\r
+ version = ipvVersion.substring(ipvVersion.indexOf("ipv")+3)\r
+ if (!version.isNumber()) {\r
+ version = ipvVersion\r
+ }\r
+ }\r
+ } catch (Exception ex) {\r
+ version = ipvVersion \r
}\r
return version\r
}\r