import com.fasterxml.jackson.annotation.JsonIgnore;\r
import com.fasterxml.jackson.annotation.JsonProperty;\r
import com.fasterxml.jackson.annotation.JsonRootName;\r
-\r
+import org.json.JSONObject;\r
import org.openecomp.mso.bpmn.core.json.DecomposeJsonUtil;\r
import org.openecomp.mso.bpmn.core.json.JsonDecomposingException;\r
\r
\r
+\r
+\r
/**\r
* Service Decomposition Structure\r
* This Java object contains service information:\r
@JsonProperty("serviceRole")\r
private String serviceRole;\r
private ServiceInstance serviceInstance;\r
+ private Request request;\r
+ private Customer customer;\r
+ private String callbackURN;\r
+ private String sdncVersion;\r
+ @JsonProperty("project")\r
+ private Project project;\r
+ @JsonProperty("owningEntity")\r
+ private OwningEntity owningEntity;\r
@JsonProperty("vnfResource")\r
private List <VnfResource> vnfResources;\r
@JsonProperty("networkResource")\r
private List <NetworkResource> networkResources;\r
@JsonProperty("allottedResource")\r
private List <AllottedResource> allottedResources;\r
+ @JsonProperty("configResource")\r
+ private List <ConfigResource> configResources;\r
\r
public ServiceDecomposition () {\r
+ super();\r
+ }\r
+\r
+ public ServiceDecomposition (String catalogRestOutput) throws JsonDecomposingException {\r
+ ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.jsonToServiceDecomposition(catalogRestOutput);\r
+ this.modelInfo = serviceDecomposition.getModelInfo();\r
+ this.vnfResources = serviceDecomposition.getServiceVnfs();\r
+ this.allottedResources = serviceDecomposition.getServiceAllottedResources();\r
+ this.networkResources = serviceDecomposition.getServiceNetworks();\r
+ this.serviceRole = serviceDecomposition.getServiceRole();\r
+ this.serviceType = serviceDecomposition.getServiceType();\r
+ this.configResources = serviceDecomposition.getServiceConfigResources();\r
+ }\r
+\r
+ /**\r
+ * Constructor taking Catalog DB Adapter REST output (serviceResources model) + service Instance ID\r
+ * @param catalogRestOutput\r
+ * @param serviceInstanceId\r
+ */\r
+ public ServiceDecomposition (String catalogRestOutput, String serviceInstanceId) throws JsonDecomposingException {\r
+ ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.jsonToServiceDecomposition(catalogRestOutput);\r
+ this.modelInfo = serviceDecomposition.getModelInfo();\r
+ this.vnfResources = serviceDecomposition.getServiceVnfs();\r
+ this.allottedResources = serviceDecomposition.getServiceAllottedResources();\r
+ this.configResources = serviceDecomposition.getServiceConfigResources();\r
+ this.networkResources = serviceDecomposition.getServiceNetworks();\r
+\r
+ this.serviceRole = serviceDecomposition.getServiceRole();\r
+ this.serviceType = serviceDecomposition.getServiceType();\r
+ \r
+ this.serviceInstance = new ServiceInstance();\r
+ this.serviceInstance.setInstanceId(serviceInstanceId);\r
+ \r
+ this.project = serviceDecomposition.getProject();\r
+ this.owningEntity = serviceDecomposition.getOwningEntity();\r
+ }\r
+\r
+ /**\r
+ * Constructor taking a Service Decomposition JSON serialization\r
+ * @param catalogRestOutput\r
+ * @param serviceInstanceId\r
+ */\r
+ public ServiceDecomposition (JSONObject jsonServiceDecomposition, String serviceInstanceId) {\r
+ //TODO provide constructor implementation\r
+\r
}\r
\r
//*****\r
public void setServiceInstance(ServiceInstance serviceInstance) {\r
this.serviceInstance = serviceInstance;\r
}\r
+ public Project getProject() {\r
+ return project;\r
+ }\r
+ public OwningEntity getOwningEntity() {\r
+ return owningEntity;\r
+ }\r
+ public void setProject(Project project) {\r
+ this.project = project;\r
+ }\r
+ public void setOwningEntity(OwningEntity owningEntity) {\r
+ this.owningEntity = owningEntity;\r
+ }\r
public List<VnfResource> getServiceVnfs() {\r
return vnfResources;\r
}\r
public List<NetworkResource> getServiceNetworks() {\r
return networkResources;\r
}\r
+ public void setServiceConfigs(List<ConfigResource> configResources) {\r
+ this.configResources = configResources;\r
+ }\r
+ public List<ConfigResource> getServiceConfigs() {\r
+ return configResources;\r
+ }\r
public void setServiceNetworks(List<NetworkResource> networkResources) {\r
this.networkResources = networkResources;\r
}\r
public void setServiceAllottedResources(List<AllottedResource> allottedResources) {\r
this.allottedResources = allottedResources;\r
}\r
+ public List<ConfigResource> getServiceConfigResources() {\r
+ return configResources;\r
+ }\r
+ public void setServiceConfigResources(List<ConfigResource> configResources) {\r
+ this.configResources = configResources;\r
+ }\r
public String getServiceType() {\r
return serviceType;\r
}\r
public void setServiceRole(String serviceRole) {\r
this.serviceRole = serviceRole;\r
}\r
+ public Request getRequest() {\r
+ return request;\r
+ }\r
+\r
+ public void setRequest(Request request) {\r
+ this.request = request;\r
+ }\r
+ public Customer getCustomer() {\r
+ return customer;\r
+ }\r
+ public void setCustomer(Customer customer) {\r
+ this.customer = customer;\r
+ }\r
+ public String getCallbackURN() {\r
+ return callbackURN;\r
+ }\r
+\r
+ public void setCallbackURN(String callbackURN) {\r
+ this.callbackURN = callbackURN;\r
+ }\r
+\r
+ public String getSdncVersion() {\r
+ return sdncVersion;\r
+ }\r
+\r
+ public void setSdncVersion(String sdncVersion) {\r
+ this.sdncVersion = sdncVersion;\r
+ }\r
+ \r
//*****\r
\r
//*****\r
if(this.getServiceVnfs() != null){\r
serviceResources.addAll(this.getServiceVnfs());\r
}\r
+ if(this.getServiceConfigResources() != null){\r
+ serviceResources.addAll(this.getServiceConfigResources());\r
+ }\r
return serviceResources;\r
}\r
\r
public String getServiceResourcesJsonString() {\r
return listToJson((this.getServiceNetworks())) +\r
listToJson((this.getServiceVnfs())) +\r
- listToJson((this.getServiceAllottedResources()));\r
+ listToJson((this.getServiceAllottedResources())) +\r
+ listToJson((this.getServiceConfigResources()));\r
}\r
\r
/**\r
public String getServiceAllottedResourcesJson(){\r
return listToJson(this.getServiceAllottedResources());\r
}\r
+ /**\r
+ * Returns a JSON list of all Config Resource structures (i.e. the serialized ConfigResource objects).\r
+ * @return\r
+ */\r
+ @JsonIgnore\r
+ public String getServiceConfigResourcesJson(){\r
+ return listToJson(this.getServiceConfigResources());\r
+ }\r
\r
//TODO - define Resource Object ID\r
@JsonIgnore\r
}\r
this.allottedResources.add((AllottedResource)allottedResource);\r
}\r
-\r
+ /**\r
+ * Add Config resource to the list\r
+ * @param allottedResource\r
+ */\r
+ public void addConfigResource(Resource configResource) {\r
+ if (configResources == null){\r
+ configResources = new ArrayList<>();\r
+ }\r
+ this.configResources.add((ConfigResource)configResource);\r
+ }\r
/**\r
* Add resource to the list\r
* Given a ResourceDecomposition (subclass) object, add it to the Service Decomposition (in the appropriate category, e.g. as a VNF, Network, or Allotted Resource).\r
case ALLOTTED_RESOURCE:\r
this.addAllottedResource(resource);\r
break;\r
+ case CONFIGURATION:\r
+ this.addConfigResource(resource);\r
+ break;\r
default:\r
throw new IllegalArgumentException("Invalid resource type: " + resource.resourceType);\r
}\r
}\r
/**\r
* Add resource to the list\r
- * @param jsonResource\r
+ * @param Resource\r
*/\r
public void addAllottedResource(String jsonResource) throws JsonDecomposingException {\r
AllottedResource allottedResource = null;\r
allottedResource = DecomposeJsonUtil.jsonToAllottedResource(jsonResource);\r
this.addVnfResource(allottedResource);\r
}\r
-\r
+ /**\r
+ * Add resource to the list\r
+ * @param Resource\r
+ */\r
+ public void addConfigResource(String jsonResource) throws JsonDecomposingException {\r
+ ConfigResource configResource = null;\r
+ configResource = DecomposeJsonUtil.jsonToConfigResource(jsonResource);\r
+ this.addVnfResource(configResource);\r
+ }\r
/**\r
* Given a ResourceDecomposition (subclass) object, locate it in the Service Decomposition by its unique ID, and replace the current version with the new one.\r
* This method should support concurrency control via an auto-incrementing field in the ResourceDecomposition class.\r
case ALLOTTED_RESOURCE:\r
this.setServiceAllottedResources((List<AllottedResource>)(List<?>)resources);\r
break;\r
+ case CONFIGURATION:\r
+ this.setServiceConfigResources((List<ConfigResource>)(List<?>)resources);\r
+ break;\r
default:\r
throw new IllegalArgumentException("Invalid resource type: " + resources.get(0).resourceType);\r
}\r
}\r
return null;\r
}\r
+\r
}\r