aboutsummaryrefslogtreecommitdiffstats
path: root/controlloop/common
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/common')
-rw-r--r--controlloop/common/actors/actor.mso/pom.xml30
-rw-r--r--controlloop/common/actors/actor.mso/src/main/java/org/onap/policy/controlloop/actor/mso/MSOActorServiceProvider.java659
-rw-r--r--controlloop/common/eventmanager/pom.xml14
-rw-r--r--controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java47
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java8
-rw-r--r--controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VNFTargetLock.java84
-rw-r--r--controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Manager.java12
-rw-r--r--controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Response.java5
-rw-r--r--controlloop/common/model-impl/events/src/main/java/org/onap/policy/controlloop/ControlLoopTargetType.java7
-rw-r--r--controlloop/common/model-impl/mso/pom.xml6
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestDetails.java57
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOAsyncRequestStatus.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOAsyncRequestStatus.java)126
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOCloudConfiguration.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOCloudConfiguration.java)88
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOInstanceReferences.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOInstanceReferences.java)88
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOManager.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOManager.java)72
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOModelInfo.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOModelInfo.java)7
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOPolicyException.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOPolicyException.java)86
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORelatedInstance.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORelatedInstance.java)98
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORelatedInstanceListElement.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORelatedInstanceListElement.java)84
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequest.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequest.java)120
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestDetails.java124
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestError.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestError.java)118
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestInfo.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestInfo.java)132
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestParameters.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestParameters.java)94
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestReferences.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestReferences.java)76
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestStatus.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestStatus.java)102
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOResponse.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOResponse.java)13
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOServiceException.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOServiceException.java)96
-rw-r--r--controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOSubscriberInfo.java (renamed from controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOSubscriberInfo.java)94
-rw-r--r--controlloop/common/model-impl/mso/src/test/java/org/onap/policy/mso/TestDemo.java91
-rw-r--r--controlloop/common/policy-yaml/src/main/java/org/onap/policy/controlloop/policy/TargetType.java3
31 files changed, 1795 insertions, 846 deletions
diff --git a/controlloop/common/actors/actor.mso/pom.xml b/controlloop/common/actors/actor.mso/pom.xml
index f0bbf48cb..5b0f908fe 100644
--- a/controlloop/common/actors/actor.mso/pom.xml
+++ b/controlloop/common/actors/actor.mso/pom.xml
@@ -16,5 +16,35 @@
<version>1.1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.onap.policy.drools-applications</groupId>
+ <artifactId>aai</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.policy.drools-applications</groupId>
+ <artifactId>events</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.policy.drools-applications</groupId>
+ <artifactId>mso</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-core</artifactId>
+ <version>6.5.0.Final</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
diff --git a/controlloop/common/actors/actor.mso/src/main/java/org/onap/policy/controlloop/actor/mso/MSOActorServiceProvider.java b/controlloop/common/actors/actor.mso/src/main/java/org/onap/policy/controlloop/actor/mso/MSOActorServiceProvider.java
index d57e62634..f3c563f2a 100644
--- a/controlloop/common/actors/actor.mso/src/main/java/org/onap/policy/controlloop/actor/mso/MSOActorServiceProvider.java
+++ b/controlloop/common/actors/actor.mso/src/main/java/org/onap/policy/controlloop/actor/mso/MSOActorServiceProvider.java
@@ -21,13 +21,86 @@
package org.onap.policy.controlloop.actor.mso;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.drools.core.WorkingMemory;
+import org.onap.policy.aai.AAINQF199.AAINQF199InstanceFilters;
+import org.onap.policy.aai.AAINQF199.AAINQF199InventoryResponseItem;
+import org.onap.policy.aai.AAINQF199.AAINQF199Manager;
+import org.onap.policy.aai.AAINQF199.AAINQF199NamedQuery;
+import org.onap.policy.aai.AAINQF199.AAINQF199QueryParameters;
+import org.onap.policy.aai.AAINQF199.AAINQF199Request;
+import org.onap.policy.aai.AAINQF199.AAINQF199RequestWrapper;
+import org.onap.policy.aai.AAINQF199.AAINQF199Response;
+import org.onap.policy.aai.AAINQF199.AAINQF199ResponseWrapper;
+import org.onap.policy.controlloop.ControlLoopNotificationType;
+import org.onap.policy.controlloop.ControlLoopOperation;
+import org.onap.policy.controlloop.VirtualControlLoopEvent;
+import org.onap.policy.controlloop.VirtualControlLoopNotification;
import org.onap.policy.controlloop.actorServiceProvider.spi.Actor;
+import org.onap.policy.controlloop.policy.Policy;
+import org.onap.policy.mso.SOCloudConfiguration;
+import org.onap.policy.mso.SOManager;
+import org.onap.policy.mso.SOModelInfo;
+import org.onap.policy.mso.SORelatedInstance;
+import org.onap.policy.mso.SORelatedInstanceListElement;
+import org.onap.policy.mso.SORequest;
+import org.onap.policy.mso.SORequestDetails;
+import org.onap.policy.mso.SORequestInfo;
+import org.onap.policy.mso.SORequestParameters;
+import org.onap.policy.mso.util.Serialization;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
public class MSOActorServiceProvider implements Actor {
+
+ private static final Logger logger = LoggerFactory.getLogger(MSOActorServiceProvider.class);
+
+ private static String vnfItemVnfId;
+
+ private String vnfItemVnfType;
+
+ private String vnfItemModelInvariantId;
+
+ private String vnfItemModelVersionId;
+
+ private String vnfItemModelName;
+
+ private String vnfItemModelVersion;
+
+ private String vnfItemModelNameVersionId;
+
+ private static String serviceItemServiceInstanceId;
+
+ private String serviceItemPersonaModelId;
+
+ private String serviceItemModelName;
+
+ private String serviceItemModelType;
+
+ private String serviceItemModelVersion;
+
+ private String serviceItemModelNameVersionId;
+
+ private String vfModuleItemVfModuleName;
+
+ private String vfModuleItemPersonaModelId;
+
+ private String vfModuleItemPersonaModelVersion;
+
+ private String vfModuleItemModelName;
+
+ private String vfModuleItemModelNameVersionId;
+
+ private String tenantItemTenantId;
+
+ private String cloudRegionItemCloudRegionId;
private static final ImmutableList<String> recipes = ImmutableList.of(
"VF Module Create");
@@ -37,7 +110,7 @@ public class MSOActorServiceProvider implements Actor {
@Override
public String actor() {
- return "MSO";
+ return "SO";
}
@Override
@@ -54,5 +127,589 @@ public class MSOActorServiceProvider implements Actor {
public List<String> recipePayloads(String recipe) {
return Collections.emptyList();
}
+
+ /**
+ * MSOActorServiceProvider Constructor
+ *
+ */
+ public MSOActorServiceProvider() {
+
+ }
+
+ /**
+ * Constructs and sends an AAI vserver Named Query
+ *
+ * @param eventRequestID
+ * @returns the response to the AAI Named Query
+ */
+ private AAINQF199ResponseWrapper AaiNamedQueryRequest(VirtualControlLoopEvent onset) {
+
+ // create AAI named-query request with UUID started with "F199"
+ AAINQF199Request aainqf199request = new AAINQF199Request();
+ AAINQF199QueryParameters aainqf199queryparam = new AAINQF199QueryParameters();
+ AAINQF199NamedQuery aainqf199namedquery = new AAINQF199NamedQuery();
+ AAINQF199InstanceFilters aainqf199instancefilter = new AAINQF199InstanceFilters();
+
+ // queryParameters
+ aainqf199namedquery.namedQueryUUID = UUID.fromString("4ff56a54-9e3f-46b7-a337-07a1d3c6b469"); // UUID.fromString($params.getAaiNamedQueryUUID()) TO DO: AaiNamedQueryUUID
+ aainqf199queryparam.namedQuery = aainqf199namedquery;
+ aainqf199request.queryParameters = aainqf199queryparam;
+ //
+ // instanceFilters
+ //
+ Map aainqf199instancefiltermap = new HashMap();
+ Map aainqf199instancefiltermapitem = new HashMap();
+ aainqf199instancefiltermapitem.put("vserver-name", onset.AAI.get("vserver.vserver-name")); // TO DO: get vserver.vname from dcae onset.AAI.get("vserver.vserver-name")
+ aainqf199instancefiltermap.put("vserver", aainqf199instancefiltermapitem);
+ aainqf199instancefilter.instanceFilter.add(aainqf199instancefiltermap);
+ aainqf199request.instanceFilters = aainqf199instancefilter;
+ //
+ // print aainqf199request for debug
+ //
+ logger.debug("AAI Request sent:");
+ logger.debug(Serialization.gsonPretty.toJson(aainqf199request));
+ //
+ // Create AAINQF199RequestWrapper
+ //
+ AAINQF199RequestWrapper aainqf199RequestWrapper = new AAINQF199RequestWrapper(onset.requestID, aainqf199request);
+ //
+ // insert aainqf199request into memory
+ //
+// insert(aainqf199RequestWrapper);
+
+ String url = "http://localhost:6666";
+ String username = "testUser";
+ String password = "testPass";
+
+ //***** send the request *****\\
+ AAINQF199Response aainqf199response = AAINQF199Manager.postQuery(url, username, password, // TO DO: get AAI URL, username, and password
+ aainqf199RequestWrapper.aainqf199request, onset.requestID);
+
+ // Check AAI response
+ if (aainqf199response == null) {
+ System.err.println("Failed to get AAI response");
+
+ // Fail and retract everything
+ return null;
+ } else {
+ // Create AAINQF199ResponseWrapper
+ AAINQF199ResponseWrapper aainqf199ResponseWrapper = new AAINQF199ResponseWrapper(onset.requestID, aainqf199response);
+
+ // insert aainqf199ResponseWrapper to memory -- Is this needed?
+// insert(aainqf199ResponseWrapper);
+
+ //
+ extractSOFieldsFromNamedQuery(aainqf199ResponseWrapper, onset);
+ return aainqf199ResponseWrapper;
+ }
+ }
+
+ /**
+ * Extract the required fields from the named query response
+ * @param namedQueryResponseWrapper
+ * @param onset
+ */
+ private void extractSOFieldsFromNamedQuery(AAINQF199ResponseWrapper namedQueryResponseWrapper, VirtualControlLoopEvent onset) {
+
+ try {
+ // vnfItem
+ setVnfItemVnfId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfID);
+ setVnfItemVnfType(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.vnfType);
+ setVnfItemVnfType(vnfItemVnfType.substring(vnfItemVnfType.lastIndexOf("/")+1));
+ setVnfItemModelInvariantId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelId);
+ setVnfItemModelVersionId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).genericVNF.personaModelVersion);
+ setVnfItemModelName(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue);
+ setVnfItemModelVersion(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(2).propertyValue);
+ setVnfItemModelNameVersionId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);
+
+ // serviceItem
+ setServiceItemServiceInstanceId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.serviceInstanceID);
+ setServiceItemPersonaModelId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelId);
+ setServiceItemModelName(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(0).propertyValue);
+ setServiceItemModelType(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(1).propertyValue);
+ setServiceItemModelVersion(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).serviceInstance.personaModelVersion);
+ setServiceItemModelNameVersionId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).extraProperties.extraProperty.get(4).propertyValue);
+
+ // Find the index for base vf module and non-base vf module
+ int baseIndex = -1;
+ int nonBaseIndex = -1;
+ List<AAINQF199InventoryResponseItem> inventoryItems = namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems;
+ for (AAINQF199InventoryResponseItem m : inventoryItems) {
+ if (m.vfModule != null && m.vfModule.isBaseVfModule == true) {
+ baseIndex = inventoryItems.indexOf(m);
+ } else if (m.vfModule != null && m.vfModule.isBaseVfModule == false && m.vfModule.orchestrationStatus == null) {
+ nonBaseIndex = inventoryItems.indexOf(m);
+ }
+ //
+ if (baseIndex != -1 && nonBaseIndex != -1) {
+ break;
+ }
+ }
+
+ // Report the error if either base vf module or non-base vf module is not found
+ if (baseIndex == -1 || nonBaseIndex == -1) {
+ logger.error("Either base or non-base vf module is not found from AAI response.");
+ return;
+ }
+
+ // This comes from the base module
+ setVfModuleItemVfModuleName(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(baseIndex).vfModule.vfModuleName);
+ setVfModuleItemVfModuleName(vfModuleItemVfModuleName.replace("Vfmodule", "vDNS"));
+
+ // vfModuleItem - NOT the base module
+ setVfModuleItemPersonaModelId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).vfModule.personaModelId);
+ setVfModuleItemPersonaModelVersion(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).vfModule.personaModelVersion);
+ setVfModuleItemModelName(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).extraProperties.extraProperty.get(0).propertyValue);
+ setVfModuleItemModelNameVersionId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(0).items.inventoryResponseItems.get(nonBaseIndex).extraProperties.extraProperty.get(4).propertyValue);
+
+ // tenantItem
+ setTenantItemTenantId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).tenant.tenantId);
+
+ // cloudRegionItem
+ setCloudRegionItemCloudRegionId(namedQueryResponseWrapper.aainqf199response.inventoryResponseItems.get(0).items.inventoryResponseItems.get(1).items.inventoryResponseItems.get(0).cloudRegion.cloudRegionId);
+
+ } catch (Exception e) {
+ logger.error(e.getMessage());
+ VirtualControlLoopNotification notification = new VirtualControlLoopNotification(onset);
+ notification.notification = ControlLoopNotificationType.REJECTED;
+ notification.message = "Exception occurred " + e.getMessage();
+ notification.policyName = onset.policyName;
+ notification.policyScope = onset.policyScope;
+ notification.policyVersion = onset.policyVersion;
+ //
+ try {
+ logger.debug(Serialization.gsonPretty.toJson(notification));
+ } catch (Exception e1) {
+ logger.error("Can't deliver notification: " + notification);
+ logger.error(e1.getMessage());
+ }
+ //
+ notification.notification = ControlLoopNotificationType.FINAL_FAILURE;
+ notification.message = "Invalid named-query response from AAI";
+ //
+ try {
+ logger.debug(Serialization.gsonPretty.toJson(notification));
+ } catch (Exception e1) {
+ logger.error("Can't deliver notification: " + notification);
+ logger.error(e1.getMessage());
+ }
+ // Retract everything
+ return;
+ }
+
+ // Extracted fields should not be null
+ if (checkExtractedFields() == false) {
+ System.err.println("some fields are missing from AAI response.");
+ return;
+ }
+ }
+
+ /**
+ * Checks whether extracted fields from AAI Named Query are null or not
+ * @return false if some extracted fields are missing, true otherwise
+ */
+ private boolean checkExtractedFields() {
+
+ if ((getVnfItemVnfId() == null) || (getVnfItemVnfType() == null) ||
+ (getVnfItemModelInvariantId() == null) || (getVnfItemModelName() == null) ||
+ (getVnfItemModelVersion() == null) || (getVnfItemModelNameVersionId() == null) ||
+ (getServiceItemServiceInstanceId() == null) || (getServiceItemModelName() == null) ||
+ (getServiceItemModelType() == null) || (getServiceItemModelVersion() == null) ||
+ (getServiceItemModelNameVersionId() == null) || (getVfModuleItemVfModuleName() == null) ||
+ (getVfModuleItemPersonaModelId() == null) || (getVfModuleItemPersonaModelVersion() == null) ||
+ (getVfModuleItemModelName() == null) || (getVfModuleItemModelNameVersionId() == null) ||
+ (getTenantItemTenantId() == null) || (getCloudRegionItemCloudRegionId() == null)) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Construct SO Request
+ *
+ * @param onset
+ * @param operation
+ * @param policy
+ * @return MSORequest
+ */
+ public SORequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) {
+
+ if (policy.getActor().equals("SO") && policy.getRecipe().equals("VF Module Create")) {
+ // perform named query request and handle response
+ AaiNamedQueryRequest(onset);
+ } else {
+ // for future extension
+ return null;
+ };
+
+ // check if the fields extracted from named query response are
+ // not null so we can proceed with SO request
+ if (checkExtractedFields() == false) {
+
+ System.err.println("AAI response is missing some required fields. Cannot proceed with SO Request construction.");
+ return null;
+
+ } else {
+
+ // Construct SO Request
+ SORequest request = new SORequest();
+ request.requestDetails = new SORequestDetails();
+ request.requestDetails.modelInfo = new SOModelInfo();
+ request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
+ request.requestDetails.requestInfo = new SORequestInfo();
+ request.requestDetails.requestParameters = new SORequestParameters();
+ request.requestDetails.requestParameters.userParams = null;
+ //
+ // cloudConfiguration
+ //
+ request.requestDetails.cloudConfiguration.lcpCloudRegionId = getCloudRegionItemCloudRegionId();
+ request.requestDetails.cloudConfiguration.tenantId = getTenantItemTenantId();
+ //
+ // modelInfo
+ //
+ request.requestDetails.modelInfo.modelType = "vfModule";
+ request.requestDetails.modelInfo.modelInvariantId = getVfModuleItemPersonaModelId();
+ request.requestDetails.modelInfo.modelNameVersionId = getVfModuleItemModelNameVersionId();
+ request.requestDetails.modelInfo.modelName = getVfModuleItemModelName();
+ request.requestDetails.modelInfo.modelVersion = getVfModuleItemPersonaModelVersion();
+ //
+ // requestInfo
+ //
+ request.requestDetails.requestInfo.instanceName = getVfModuleItemVfModuleName();
+ request.requestDetails.requestInfo.source = "POLICY";
+ request.requestDetails.requestInfo.suppressRollback = false;
+ //
+ // relatedInstanceList
+ //
+ SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
+ SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
+ relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
+ relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
+ //
+ relatedInstanceListElement1.relatedInstance.instanceId = getServiceItemServiceInstanceId();
+ relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
+ relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
+ relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = getServiceItemPersonaModelId();
+ relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = getServiceItemModelNameVersionId();
+ relatedInstanceListElement1.relatedInstance.modelInfo.modelName = getServiceItemModelName();
+ relatedInstanceListElement1.relatedInstance.modelInfo.modelVersion = getServiceItemModelVersion();
+ //
+ relatedInstanceListElement2.relatedInstance.instanceId = getVnfItemVnfId();
+ relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
+ relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
+ relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = getVnfItemModelInvariantId();
+ relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = getVnfItemModelNameVersionId();
+ relatedInstanceListElement2.relatedInstance.modelInfo.modelName = getVnfItemModelName();
+ relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = getVnfItemModelVersion();
+ relatedInstanceListElement2.relatedInstance.modelInfo.modelCustomizationName = getVnfItemVnfType();
+ //
+ request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
+ request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
+ //
+ // print MSO request for debug
+ //
+ logger.debug("MSO request sent:");
+ logger.debug(Serialization.gsonPretty.toJson(request));
+
+ return request;
+ }
+ }
+
+ /**
+ * This method is needed to get the serviceInstanceId and vnfInstanceId which is used
+ * in the asyncMSORestCall
+ *
+ * @param wm
+ * @param request
+ */
+ public static void sendRequest(WorkingMemory wm, Object request) {
+ SOManager Mm = new SOManager();
+ Mm.asyncMSORestCall(wm, getServiceItemServiceInstanceId(), getVnfItemVnfId(), (SORequest)request);
+ }
+
+ /**
+ * @return the vnfItemVnfId
+ */
+ public static String getVnfItemVnfId() {
+ return vnfItemVnfId;
+ }
+
+ /**
+ * @param vnfItemVnfId the vnfItemVnfId to set
+ */
+ private void setVnfItemVnfId(String vnfItemVnfId) {
+ this.vnfItemVnfId = vnfItemVnfId;
+ }
+
+ /**
+ * @return the vnfItemVnfType
+ */
+ public String getVnfItemVnfType() {
+ return this.vnfItemVnfType;
+ }
+
+ /**
+ * @param vnfItemVnfType the vnfItemVnfType to set
+ */
+ private void setVnfItemVnfType(String vnfItemVnfType) {
+ this.vnfItemVnfType = vnfItemVnfType;
+ }
+
+ /**
+ * @return the vnfItemPersonaModelId
+ */
+ public String getVnfItemModelInvariantId() {
+ return this.vnfItemModelInvariantId;
+ }
+
+ /**
+ * @param vnfItemPersonaModelId the vnfItemPersonaModelId to set
+ */
+ private void setVnfItemModelInvariantId(String vnfItemModelInvariantId) {
+ this.vnfItemModelInvariantId = vnfItemModelInvariantId;
+ }
+
+ /**
+ * @return the vnfItemModelVersionId
+ */
+ public String getVnfItemModelVersionId() {
+ return this.vnfItemModelVersionId;
+ }
+
+ /**
+ * @param vnfItemModelVersionId the vnfItemModelVersionId to set
+ */
+ private void setVnfItemModelVersionId(String vnfItemModelVersionId) {
+ this.vnfItemModelVersionId = vnfItemModelVersionId;
+ }
+
+ /**
+ * @return the vnfItemModelName
+ */
+ public String getVnfItemModelName() {
+ return this.vnfItemModelName;
+ }
+
+ /**
+ * @param vnfItemModelName the vnfItemModelName to set
+ */
+ private void setVnfItemModelName(String vnfItemModelName) {
+ this.vnfItemModelName = vnfItemModelName;
+ }
+
+ /**
+ * @return the vnfItemModelVersion
+ */
+ public String getVnfItemModelVersion() {
+ return this.vnfItemModelVersion;
+ }
+
+ /**
+ * @param vnfItemModelVersion the vnfItemModelVersion to set
+ */
+ private void setVnfItemModelVersion(String vnfItemModelVersion) {
+ this.vnfItemModelVersion = vnfItemModelVersion;
+ }
+
+ /**
+ * @return the vnfItemModelNameVersionId
+ */
+ public String getVnfItemModelNameVersionId() {
+ return this.vnfItemModelNameVersionId;
+ }
+
+ /**
+ * @param vnfItemModelNameVersionId the vnfItemModelNameVersionId to set
+ */
+ private void setVnfItemModelNameVersionId(String vnfItemModelNameVersionId) {
+ this.vnfItemModelNameVersionId = vnfItemModelNameVersionId;
+ }
+
+ /**
+ * @return the serviceItemServiceInstanceId
+ */
+ public static String getServiceItemServiceInstanceId() {
+ return serviceItemServiceInstanceId;
+ }
+
+ /**
+ * @param serviceItemServiceInstanceId the serviceItemServiceInstanceId to set
+ */
+ private void setServiceItemServiceInstanceId(
+ String serviceItemServiceInstanceId) {
+ this.serviceItemServiceInstanceId = serviceItemServiceInstanceId;
+ }
+
+ /**
+ * @return the serviceItemPersonaModelId
+ */
+ public String getServiceItemPersonaModelId() {
+ return this.serviceItemPersonaModelId;
+ }
+
+ /**
+ * @param serviceItemPersonaModelId the serviceItemPersonaModelId to set
+ */
+ private void setServiceItemPersonaModelId(String serviceItemPersonaModelId) {
+ this.serviceItemPersonaModelId = serviceItemPersonaModelId;
+ }
+
+ /**
+ * @return the serviceItemModelName
+ */
+ public String getServiceItemModelName() {
+ return this.serviceItemModelName;
+ }
+
+ /**
+ * @param serviceItemModelName the serviceItemModelName to set
+ */
+ private void setServiceItemModelName(String serviceItemModelName) {
+ this.serviceItemModelName = serviceItemModelName;
+ }
+
+ /**
+ * @return the serviceItemModelType
+ */
+ public String getServiceItemModelType() {
+ return this.serviceItemModelType;
+ }
+
+ /**
+ * @param serviceItemModelType the serviceItemModelType to set
+ */
+ private void setServiceItemModelType(String serviceItemModelType) {
+ this.serviceItemModelType = serviceItemModelType;
+ }
+
+ /**
+ * @return the serviceItemModelVersion
+ */
+ public String getServiceItemModelVersion() {
+ return this.serviceItemModelVersion;
+ }
+
+ /**
+ * @param serviceItemModelVersion the serviceItemModelVersion to set
+ */
+ private void setServiceItemModelVersion(String serviceItemModelVersion) {
+ this.serviceItemModelVersion = serviceItemModelVersion;
+ }
+
+ /**
+ * @return the serviceItemModelNameVersionId
+ */
+ public String getServiceItemModelNameVersionId() {
+ return this.serviceItemModelNameVersionId;
+ }
+
+ /**
+ * @param serviceItemModelNameVersionId the serviceItemModelNameVersionId to set
+ */
+ private void setServiceItemModelNameVersionId(
+ String serviceItemModelNameVersionId) {
+ this.serviceItemModelNameVersionId = serviceItemModelNameVersionId;
+ }
+
+ /**
+ * @return the vfModuleItemVfModuleName
+ */
+ public String getVfModuleItemVfModuleName() {
+ return this.vfModuleItemVfModuleName;
+ }
+
+ /**
+ * @param vfModuleItemVfModuleName the vfModuleItemVfModuleName to set
+ */
+ private void setVfModuleItemVfModuleName(String vfModuleItemVfModuleName) {
+ this.vfModuleItemVfModuleName = vfModuleItemVfModuleName;
+ }
+
+ /**
+ * @return the vfModuleItemPersonaModelId
+ */
+ public String getVfModuleItemPersonaModelId() {
+ return this.vfModuleItemPersonaModelId;
+ }
+
+ /**
+ * @param vfModuleItemPersonaModelId the vfModuleItemPersonaModelId to set
+ */
+ private void setVfModuleItemPersonaModelId(String vfModuleItemPersonaModelId) {
+ this.vfModuleItemPersonaModelId = vfModuleItemPersonaModelId;
+ }
+
+ /**
+ * @return the vfModuleItemPersonaModelVersion
+ */
+ public String getVfModuleItemPersonaModelVersion() {
+ return this.vfModuleItemPersonaModelVersion;
+ }
+
+ /**
+ * @param vfModuleItemPersonaModelVersion the vfModuleItemPersonaModelVersion to set
+ */
+ private void setVfModuleItemPersonaModelVersion(
+ String vfModuleItemPersonaModelVersion) {
+ this.vfModuleItemPersonaModelVersion = vfModuleItemPersonaModelVersion;
+ }
+
+ /**
+ * @return the vfModuleItemModelName
+ */
+ public String getVfModuleItemModelName() {
+ return this.vfModuleItemModelName;
+ }
+
+ /**
+ * @param vfModuleItemModelName the vfModuleItemModelName to set
+ */
+ private void setVfModuleItemModelName(String vfModuleItemModelName) {
+ this.vfModuleItemModelName = vfModuleItemModelName;
+ }
+
+ /**
+ * @return the vfModuleItemModelNameVersionId
+ */
+ public String getVfModuleItemModelNameVersionId() {
+ return this.vfModuleItemModelNameVersionId;
+ }
+
+ /**
+ * @param vfModuleItemModelNameVersionId the vfModuleItemModelNameVersionId to set
+ */
+ private void setVfModuleItemModelNameVersionId(
+ String vfModuleItemModelNameVersionId) {
+ this.vfModuleItemModelNameVersionId = vfModuleItemModelNameVersionId;
+ }
+
+ /**
+ * @return the tenantItemTenantId
+ */
+ public String getTenantItemTenantId() {
+ return this.tenantItemTenantId;
+ }
+
+ /**
+ * @param tenantItemTenantId the tenantItemTenantId to set
+ */
+ private void setTenantItemTenantId(String tenantItemTenantId) {
+ this.tenantItemTenantId = tenantItemTenantId;
+ }
+
+ /**
+ * @return the cloudRegionItemCloudRegionId
+ */
+ public String getCloudRegionItemCloudRegionId() {
+ return this.cloudRegionItemCloudRegionId;
+ }
+
+ /**
+ * @param cloudRegionItemCloudRegionId the cloudRegionItemCloudRegionId to set
+ */
+ private void setCloudRegionItemCloudRegionId(
+ String cloudRegionItemCloudRegionId) {
+ this.cloudRegionItemCloudRegionId = cloudRegionItemCloudRegionId;
+ }
}
diff --git a/controlloop/common/eventmanager/pom.xml b/controlloop/common/eventmanager/pom.xml
index 44086a68d..3efecdc8a 100644
--- a/controlloop/common/eventmanager/pom.xml
+++ b/controlloop/common/eventmanager/pom.xml
@@ -52,6 +52,12 @@
<version>1.1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.onap.policy.drools-applications</groupId>
+ <artifactId>actor.mso</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>org.onap.policy.drools-applications</groupId>
<artifactId>actor.vfc</artifactId>
@@ -124,6 +130,12 @@
<version>1.1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
-
+ <dependency>
+ <groupId>org.onap.policy.drools-applications</groupId>
+ <artifactId>mso</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+
</dependencies>
</project>
diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java
index 3c264ab24..a1ae9f0d5 100644
--- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java
+++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java
@@ -40,6 +40,8 @@ import org.onap.policy.controlloop.actor.appc.APPCActorServiceProvider;
import org.onap.policy.controlloop.actor.vfc.VFCActorServiceProvider;
import org.onap.policy.controlloop.policy.Policy;
import org.onap.policy.controlloop.policy.PolicyResult;
+import org.onap.policy.controlloop.actor.mso.MSOActorServiceProvider;
+import org.onap.policy.mso.SOResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.onap.policy.controlloop.actor.appclcm.AppcLcmActorServiceProvider;
@@ -129,11 +131,7 @@ public class ControlLoopOperationManager implements Serializable {
switch (policy.getActor()) {
case "APPC":
break;
- case "AOTS":
- break;
- case "MSO":
- break;
- case "SDNO":
+ case "SO":
break;
case "VFC":
break;
@@ -215,12 +213,14 @@ public class ControlLoopOperationManager implements Serializable {
//
this.currentOperation = operation;
return operationRequest;
- case "MSO":
- //
- // We are not supporting MSO interface at the moment
- //
- logger.debug("We are not supporting MSO actor in the latest release.");
- return null;
+ case "SO":
+ MSOActorServiceProvider SOAsp = new MSOActorServiceProvider();
+ this.operationRequest = SOAsp.constructRequest((VirtualControlLoopEvent)onset, operation.operation, this.policy);
+
+ // Save the operation
+ this.currentOperation = operation;
+
+ return operationRequest;
case "VFC":
this.operationRequest = VFCActorServiceProvider.constructRequest((VirtualControlLoopEvent) onset, operation.operation, this.policy);
this.currentOperation = operation;
@@ -341,7 +341,32 @@ public class ControlLoopOperationManager implements Serializable {
return result.getKey();
}
return null;
+ } else if (response instanceof SOResponse) {
+ SOResponse msoResponse = (SOResponse) response;
+ switch (msoResponse.httpResponseCode) {
+ case 200:
+ case 202:
+ //
+ // Consider it as success
+ //
+ this.completeOperation(new Integer(1), msoResponse.httpResponseCode + " Success", PolicyResult.SUCCESS);
+ if (this.policyResult != null && this.policyResult.equals(PolicyResult.FAILURE_TIMEOUT)) {
+ return null;
+ }
+ return PolicyResult.SUCCESS;
+ default:
+ //
+ // Consider it as failure
+ //
+ this.completeOperation(new Integer(1), msoResponse.httpResponseCode + " Failed", PolicyResult.FAILURE);
+ if (this.policyResult != null && this.policyResult.equals(PolicyResult.FAILURE_TIMEOUT)) {
+ return null;
+ }
+ return PolicyResult.FAILURE;
+ }
+
}
+
return null;
}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java
index fabc48511..b35ec5a9f 100644
--- a/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java
+++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/PolicyGuard.java
@@ -26,6 +26,7 @@ import java.util.UUID;
import org.onap.policy.controlloop.policy.TargetType;
import org.onap.policy.guard.impl.PNFTargetLock;
import org.onap.policy.guard.impl.VMTargetLock;
+import org.onap.policy.guard.impl.VNFTargetLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -78,6 +79,13 @@ public class PolicyGuard {
//
lock = new VMTargetLock(targetType, targetInstance, requestID, callback);
break;
+ case VNF:
+ //
+ // Create the Lock object
+ //
+ lock = new VNFTargetLock(targetType, targetInstance, requestID, callback);
+ break;
+
default:
return LockResult.createLockResult(GuardResult.LOCK_EXCEPTION, null);
}
diff --git a/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VNFTargetLock.java b/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VNFTargetLock.java
new file mode 100644
index 000000000..1350d5c54
--- /dev/null
+++ b/controlloop/common/guard/src/main/java/org/onap/policy/guard/impl/VNFTargetLock.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * guard
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.guard.impl;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+import org.onap.policy.controlloop.policy.TargetType;
+import org.onap.policy.guard.LockCallback;
+import org.onap.policy.guard.TargetLock;
+
+public class VNFTargetLock implements TargetLock, Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 2335897394577202732L;
+
+ private final UUID lockID;
+ private final TargetType targetType;
+ private final String target;
+ private final UUID requestID;
+ private final LockCallback callback;
+
+ public VNFTargetLock (TargetType type, String target, UUID requestID, LockCallback callback) {
+ this.lockID = UUID.randomUUID();
+ this.targetType = type;
+ this.target = target;
+ this.requestID = requestID;
+ this.callback = callback;
+ }
+
+ @Override
+ public UUID getLockID() {
+ return this.lockID;
+ }
+
+
+ @Override
+ public TargetType getTargetType() {
+ return targetType;
+ }
+
+ @Override
+ public String getTargetInstance() {
+ return target;
+ }
+
+ @Override
+ public UUID getRequestID() {
+ return this.requestID;
+ }
+
+ public LockCallback getCallback() {
+ return this.callback;
+ }
+
+ @Override
+ public String toString() {
+ return "VNFTargetLock [lockID=" + lockID + ", targetType=" + targetType + ", target=" + target + ", requestID="
+ + requestID + "]";
+ }
+
+
+
+}
diff --git a/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Manager.java b/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Manager.java
index fd999fb5f..9cb0a220a 100644
--- a/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Manager.java
+++ b/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Manager.java
@@ -38,7 +38,7 @@ public final class AAINQF199Manager {
public static AAINQF199Response postQuery(String url, String username, String password, AAINQF199Request request, UUID requestID) {
- Map<String, String> headers = new HashMap<String, String>();
+ Map<String, String> headers = new HashMap<>();
headers.put("X-FromAppId", "POLICY");
headers.put("X-TransactionId", requestID.toString());
headers.put("Accept", "application/json");
@@ -47,8 +47,10 @@ public final class AAINQF199Manager {
Pair<Integer, String> httpDetails = RESTManager.post(url, username, password, headers, "application/json", Serialization.gsonPretty.toJson(request));
+ logger.debug("Performing AAI POST to " + url + "\nSending: \n" + Serialization.gsonPretty.toJson(request) + "END");
+
if (httpDetails == null) {
- logger.debug("AAI POST Null Response to {}", url);
+ logger.debug("AAI POST - Null Response from {}", url);
return null;
}
@@ -69,7 +71,7 @@ public final class AAINQF199Manager {
public static AAIGETResponse getQuery(String urlGet, String username, String password, UUID requestID, String vnfId) {
- Map<String, String> headers = new HashMap<String, String>();
+ Map<String, String> headers = new HashMap<>();
headers.put("X-FromAppId", "POLICY");
headers.put("X-TransactionId", requestID.toString());
headers.put("Accept", "application/json");
@@ -101,7 +103,9 @@ public final class AAINQF199Manager {
}
try {
Thread.sleep(1000);
- } catch (InterruptedException e) {}
+ } catch (InterruptedException e) {
+ logger.error(e.getMessage());
+ }
}
diff --git a/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Response.java b/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Response.java
index 68a011b98..bcecc04b9 100644
--- a/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Response.java
+++ b/controlloop/common/model-impl/aai/src/main/java/org/onap/policy/aai/AAINQF199/AAINQF199Response.java
@@ -34,9 +34,10 @@ public class AAINQF199Response implements Serializable {
private static final long serialVersionUID = 8411407444051746101L;
@SerializedName("inventory-response-item")
- public List<AAINQF199InventoryResponseItem> inventoryResponseItems = new LinkedList<AAINQF199InventoryResponseItem>();
+ public List<AAINQF199InventoryResponseItem> inventoryResponseItems = new LinkedList<>();
public AAINQF199Response() {
+
}
-
+
}
diff --git a/controlloop/common/model-impl/events/src/main/java/org/onap/policy/controlloop/ControlLoopTargetType.java b/controlloop/common/model-impl/events/src/main/java/org/onap/policy/controlloop/ControlLoopTargetType.java
index c8bd1a80c..f0e4627a3 100644
--- a/controlloop/common/model-impl/events/src/main/java/org/onap/policy/controlloop/ControlLoopTargetType.java
+++ b/controlloop/common/model-impl/events/src/main/java/org/onap/policy/controlloop/ControlLoopTargetType.java
@@ -24,7 +24,7 @@ public enum ControlLoopTargetType {
VM("VM"),
VF("VF"),
VFC("VFC"),
- ENODEB("eNodeB")
+ VNF("VNF")
;
private String type;
@@ -47,9 +47,10 @@ public enum ControlLoopTargetType {
if (VFC.toString().equals(type)) {
return VFC;
}
- if (ENODEB.toString().equals(type)) {
- return ENODEB;
+ if (VNF.toString().equals(type)) {
+ return VNF;
}
+
return null;
}
}
diff --git a/controlloop/common/model-impl/mso/pom.xml b/controlloop/common/model-impl/mso/pom.xml
index 8e584a8ea..5d386688d 100644
--- a/controlloop/common/model-impl/mso/pom.xml
+++ b/controlloop/common/model-impl/mso/pom.xml
@@ -43,6 +43,12 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.drools</groupId>
+ <artifactId>drools-core</artifactId>
+ <version>6.5.0.Final</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.onap.policy.drools-applications</groupId>
<artifactId>rest</artifactId>
<version>${project.version}</version>
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestDetails.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestDetails.java
deleted file mode 100644
index 180285765..000000000
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestDetails.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-import java.util.LinkedList;
-import java.util.List;
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORequestDetails implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("modelInfo")
- public MSOModelInfo modelInfo;
-
- @SerializedName("cloudConfiguration")
- public MSOCloudConfiguration cloudConfiguration;
-
- @SerializedName("requestInfo")
- public MSORequestInfo requestInfo;
-
- @SerializedName("subscriberInfo")
- public MSOSubscriberInfo subscriberInfo;
-
- @SerializedName("relatedInstanceList")
- public List<MSORelatedInstanceListElement> relatedInstanceList= new LinkedList<MSORelatedInstanceListElement>();
-
- @SerializedName("requestParameters")
- public MSORequestParameters requestParameters;
-
- public MSORequestDetails() {
- }
-
-}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOAsyncRequestStatus.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOAsyncRequestStatus.java
index 7e7451a60..600816304 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOAsyncRequestStatus.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOAsyncRequestStatus.java
@@ -1,63 +1,63 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSOAsyncRequestStatus implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("correlator")
- public String correlator;
-
- @SerializedName("requestId")
- public String requestId;
-
- @SerializedName("instanceReferences")
- public MSOInstanceReferences instanceReferences;
-
- @SerializedName("startTime")
- public LocalDateTime startTime;
-
- @SerializedName("finishTime")
- public LocalDateTime finishTime;
-
- @SerializedName("requestScope")
- public String requestScope;
-
- @SerializedName("requestType")
- public String requestType;
-
- @SerializedName("requestStatus")
- public MSORequestStatus requestStatus;
-
-
- public MSOAsyncRequestStatus() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.google.gson.annotations.SerializedName;
+
+public class SOAsyncRequestStatus implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("correlator")
+ public String correlator;
+
+ @SerializedName("requestId")
+ public String requestId;
+
+ @SerializedName("instanceReferences")
+ public SOInstanceReferences instanceReferences;
+
+ @SerializedName("startTime")
+ public LocalDateTime startTime;
+
+ @SerializedName("finishTime")
+ public LocalDateTime finishTime;
+
+ @SerializedName("requestScope")
+ public String requestScope;
+
+ @SerializedName("requestType")
+ public String requestType;
+
+ @SerializedName("requestStatus")
+ public SORequestStatus requestStatus;
+
+
+ public SOAsyncRequestStatus() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOCloudConfiguration.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOCloudConfiguration.java
index 965ada24d..7e4951166 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOCloudConfiguration.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOCloudConfiguration.java
@@ -1,44 +1,44 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSOCloudConfiguration implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("lcpCloudRegionId")
- public String lcpCloudRegionId;
-
- @SerializedName("tenantId")
- public String tenantId;
-
- public MSOCloudConfiguration() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SOCloudConfiguration implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("lcpCloudRegionId")
+ public String lcpCloudRegionId;
+
+ @SerializedName("tenantId")
+ public String tenantId;
+
+ public SOCloudConfiguration() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOInstanceReferences.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOInstanceReferences.java
index f751c3a43..894b17ade 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOInstanceReferences.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOInstanceReferences.java
@@ -1,44 +1,44 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSOInstanceReferences implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("requestId")
- public String requestId;
-
- @SerializedName("instanceId")
- public String instanceId;
-
- public MSOInstanceReferences() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SOInstanceReferences implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("requestId")
+ public String requestId;
+
+ @SerializedName("instanceId")
+ public String instanceId;
+
+ public SOInstanceReferences() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOManager.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOManager.java
index c23935586..ea9146d24 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOManager.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOManager.java
@@ -20,22 +20,29 @@
package org.onap.policy.mso;
+import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import org.onap.policy.mso.util.Serialization;
import org.onap.policy.rest.RESTManager;
import org.onap.policy.rest.RESTManager.Pair;
+import org.drools.core.WorkingMemory;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
-public final class MSOManager {
+public final class SOManager {
- private static final Logger logger = LoggerFactory.getLogger(MSOManager.class);
-
- public static MSOResponse createModuleInstance(String url, String urlBase, String username, String password, MSORequest request) {
+ private static final Logger logger = LoggerFactory.getLogger(SOManager.class);
+ private static ExecutorService executors = Executors.newCachedThreadPool();
+
+ public static SOResponse createModuleInstance(String url, String urlBase, String username, String password, SORequest request) {
//
// Call REST
@@ -57,7 +64,7 @@ public final class MSOManager {
if (httpDetails.a == 202) {
try {
- MSOResponse response = Serialization.gsonPretty.fromJson(httpDetails.b, MSOResponse.class);
+ SOResponse response = Serialization.gsonPretty.fromJson(httpDetails.b, SOResponse.class);
String body = Serialization.gsonPretty.toJson(response);
logger.debug("***** Response to post:");
@@ -68,12 +75,12 @@ public final class MSOManager {
//String getUrl = "/orchestrationRequests/v2/"+requestId;
String urlGet = urlBase + "/orchestrationRequests/v2/"+requestId;
- MSOResponse responseGet = null;
+ SOResponse responseGet = null;
while(attemptsLeft-- > 0){
Pair<Integer, String> httpDetailsGet = RESTManager.get(urlGet, username, password, headers);
- responseGet = Serialization.gsonPretty.fromJson(httpDetailsGet.b, MSOResponse.class);
+ responseGet = Serialization.gsonPretty.fromJson(httpDetailsGet.b, SOResponse.class);
body = Serialization.gsonPretty.toJson(responseGet);
logger.debug("***** Response to get:");
logger.debug(body);
@@ -97,7 +104,7 @@ public final class MSOManager {
return responseGet;
} catch (JsonSyntaxException e) {
- logger.error("Failed to deserialize into MSOResponse: ", e);
+ logger.error("Failed to deserialize into SOResponse: ", e);
} catch (InterruptedException e) {
logger.error("Interrupted exception: ", e);
}
@@ -109,4 +116,53 @@ public final class MSOManager {
return null;
}
+ /**
+ *
+ * @param wm
+ * @param url
+ * @param urlBase
+ * @param username
+ * @param password
+ * @param request
+ *
+ * This method makes an asynchronous Rest call to MSO and inserts the response into the Drools working memory
+ */
+ public void asyncMSORestCall(WorkingMemory wm, String serviceInstanceId, String vnfInstanceId, SORequest request) {
+ executors.submit(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ String serverRoot = ""; // TODO
+ String username = ""; // TODO
+ String password = ""; // TODO
+ String url = serverRoot + "/serviceInstances/v5/" + serviceInstanceId + "/vnfs/" + vnfInstanceId + "/vfModules";
+
+ String auth = username + ":" + password;
+
+ Map<String, String> headers = new HashMap<String, String>();
+ byte[] encodedBytes = Base64.getEncoder().encode(auth.getBytes());
+ headers.put("Accept", "application/json");
+ headers.put("Authorization", "Basic " + new String(encodedBytes));
+
+ Gson gsonPretty = new GsonBuilder().disableHtmlEscaping()
+ .setPrettyPrinting()
+ .create();
+
+ String msoJson = gsonPretty.toJson(request);
+
+ SOResponse mso = new SOResponse();
+ Pair<Integer, String> httpResponse = RESTManager.post(url, "policy", "policy", headers, "application/json", msoJson);
+ if (httpResponse != null) {
+ Gson gson = new Gson();
+ mso = gson.fromJson(httpResponse.b, SOResponse.class);
+ mso.httpResponseCode = httpResponse.a;
+ }
+
+// logger.info("MSOResponse inserted " + mso.toString());
+ wm.insert(mso);
+ }
+ });
+ }
+
}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOModelInfo.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOModelInfo.java
index 9efea94b1..cba763daf 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOModelInfo.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOModelInfo.java
@@ -25,7 +25,7 @@ import java.io.Serializable;
import com.google.gson.annotations.SerializedName;
-public class MSOModelInfo implements Serializable {
+public class SOModelInfo implements Serializable {
/**
*
@@ -50,7 +50,10 @@ public class MSOModelInfo implements Serializable {
@SerializedName("modelCustomizationName")
public String modelCustomizationName;
- public MSOModelInfo() {
+ @SerializedName("modelCustomizationId")
+ public String modelCustomizationId;
+
+ public SOModelInfo() {
}
}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOPolicyException.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOPolicyException.java
index 97e85132a..a2c9f81aa 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOPolicyException.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOPolicyException.java
@@ -1,43 +1,43 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSOPolicyException implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("messageId")
- public String messageId;
-
- @SerializedName("text")
- public String text;
-
- public MSOPolicyException() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+import com.google.gson.annotations.SerializedName;
+
+public class SOPolicyException implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("messageId")
+ public String messageId;
+
+ @SerializedName("text")
+ public String text;
+
+ public SOPolicyException() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORelatedInstance.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORelatedInstance.java
index 0eec72f70..d9d634a57 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORelatedInstance.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORelatedInstance.java
@@ -1,49 +1,49 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORelatedInstance implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("instanceId")
- public String instanceId;
-
- @SerializedName("instanceName")
- public String instanceName;
-
- @SerializedName("modelInfo")
- public MSOModelInfo modelInfo;
-
-
- public MSORelatedInstance() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORelatedInstance implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("instanceId")
+ public String instanceId;
+
+ @SerializedName("instanceName")
+ public String instanceName;
+
+ @SerializedName("modelInfo")
+ public SOModelInfo modelInfo;
+
+
+ public SORelatedInstance() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORelatedInstanceListElement.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORelatedInstanceListElement.java
index dfeed32f2..f32f7ccb1 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORelatedInstanceListElement.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORelatedInstanceListElement.java
@@ -1,42 +1,42 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORelatedInstanceListElement implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("relatedInstance")
- public MSORelatedInstance relatedInstance;
-
-
- public MSORelatedInstanceListElement() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORelatedInstanceListElement implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("relatedInstance")
+ public SORelatedInstance relatedInstance;
+
+
+ public SORelatedInstanceListElement() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequest.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequest.java
index fa4e7892b..83a761377 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequest.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequest.java
@@ -1,60 +1,60 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORequest implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("requestId")
- public String requestId;
-
- @SerializedName("startTime")
- //public LocalDateTime startTime;
- public String startTime;
-
- @SerializedName("finishTime")
- public LocalDateTime finishTime;
-
- @SerializedName("requestScope")
- public String requestScope;
-
- @SerializedName("requestType")
- public String requestType;
-
- @SerializedName("requestDetails")
- public MSORequestDetails requestDetails;
-
- @SerializedName("requestStatus")
- public MSORequestStatus requestStatus;
-
- public MSORequest() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORequest implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("requestId")
+ public String requestId;
+
+ @SerializedName("startTime")
+ //public LocalDateTime startTime;
+ public String startTime;
+
+ @SerializedName("finishTime")
+ public LocalDateTime finishTime;
+
+ @SerializedName("requestScope")
+ public String requestScope;
+
+ @SerializedName("requestType")
+ public String requestType;
+
+ @SerializedName("requestDetails")
+ public SORequestDetails requestDetails;
+
+ @SerializedName("requestStatus")
+ public SORequestStatus requestStatus;
+
+ public SORequest() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestDetails.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestDetails.java
new file mode 100644
index 000000000..4b4b8217e
--- /dev/null
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestDetails.java
@@ -0,0 +1,124 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORequestDetails implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("modelInfo")
+ public SOModelInfo modelInfo;
+
+ @SerializedName("cloudConfiguration")
+ public SOCloudConfiguration cloudConfiguration;
+
+ @SerializedName("requestInfo")
+ public SORequestInfo requestInfo;
+
+ @SerializedName("subscriberInfo")
+ public SOSubscriberInfo subscriberInfo;
+
+ @SerializedName("relatedInstanceList")
+ public List<SORelatedInstanceListElement> relatedInstanceList= new LinkedList<SORelatedInstanceListElement>();
+
+ @SerializedName("requestParameters")
+ public SORequestParameters requestParameters;
+
+ public SORequestDetails() {
+
+ }
+
+ public SORequestDetails(SORequestDetails soRequestDetails) {
+ this.modelInfo = soRequestDetails.modelInfo;
+ this.cloudConfiguration = soRequestDetails.cloudConfiguration;
+ this.requestInfo = soRequestDetails.requestInfo;
+ this.relatedInstanceList = soRequestDetails.relatedInstanceList;
+ this.requestParameters = soRequestDetails.requestParameters;
+ }
+
+ @Override
+ public String toString() {
+ return "SORequestDetails [modelInfo=" + modelInfo
+ + ", cloudConfiguration=" + cloudConfiguration
+ + ", requestInfo=" + requestInfo + ", relatedInstanceList="
+ + relatedInstanceList + ", requestParameters="
+ + requestParameters + "]";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((cloudConfiguration == null) ? 0 : cloudConfiguration.hashCode());
+ result = prime * result + ((modelInfo == null) ? 0 : modelInfo.hashCode());
+ result = prime * result + ((relatedInstanceList == null) ? 0 : relatedInstanceList.hashCode());
+ result = prime * result + ((requestInfo == null) ? 0 : requestInfo.hashCode());
+ result = prime * result + ((requestParameters == null) ? 0 : requestParameters.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ SORequestDetails other = (SORequestDetails) obj;
+ if (cloudConfiguration == null) {
+ if (other.cloudConfiguration != null)
+ return false;
+ } else if (!cloudConfiguration.equals(other.cloudConfiguration))
+ return false;
+ if (modelInfo == null) {
+ if (other.modelInfo != null)
+ return false;
+ } else if (!modelInfo.equals(other.modelInfo))
+ return false;
+ if (relatedInstanceList == null) {
+ if (other.relatedInstanceList != null)
+ return false;
+ } else if (!relatedInstanceList.equals(other.relatedInstanceList))
+ return false;
+ if (requestInfo == null) {
+ if (other.requestInfo != null)
+ return false;
+ } else if (!requestInfo.equals(other.requestInfo))
+ return false;
+ if (requestParameters == null) {
+ if (other.requestParameters != null)
+ return false;
+ } else if (!requestParameters.equals(other.requestParameters))
+ return false;
+ return true;
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestError.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestError.java
index 849103e6d..76b62bfa0 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestError.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestError.java
@@ -1,59 +1,59 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORequestError implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
-
- @SerializedName("policyException")
- public MSOPolicyException policyException;
-
-
- @SerializedName("serviceException")
- public MSOServiceException serviceException;
-
- /*
- @SerializedName("messageId")
- public String messageId;
-
- @SerializedName("text")
- public String text;
-
- @SerializedName("url")
- public String url;
-
- @SerializedName("variables")
- public String variables;
- */
-
- public MSORequestError() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORequestError implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+
+ @SerializedName("policyException")
+ public SOPolicyException policyException;
+
+
+ @SerializedName("serviceException")
+ public SOServiceException serviceException;
+
+ /*
+ @SerializedName("messageId")
+ public String messageId;
+
+ @SerializedName("text")
+ public String text;
+
+ @SerializedName("url")
+ public String url;
+
+ @SerializedName("variables")
+ public String variables;
+ */
+
+ public SORequestError() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestInfo.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestInfo.java
index 5c771b6e3..9e5b93ccb 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestInfo.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestInfo.java
@@ -1,66 +1,66 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORequestInfo implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("instanceName")
- public String instanceName;
-
- @SerializedName("source")
- public String source;
-
- @SerializedName("productFamilyId")
- public String productFamilyId;
-
- @SerializedName("suppressRollback")
- public boolean suppressRollback;
-
- @SerializedName("billingAccountNumber")
- public String billingAccountNumber;
-
- @SerializedName("callbackUrl")
- public String callbackUrl;
-
- @SerializedName("correlator")
- public String correlator;
-
- @SerializedName("orderNumber")
- public String orderNumber;
-
- @SerializedName("orderVersion")
- public Integer orderVersion;
-
-
- public MSORequestInfo() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORequestInfo implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("instanceName")
+ public String instanceName;
+
+ @SerializedName("source")
+ public String source;
+
+ @SerializedName("productFamilyId")
+ public String productFamilyId;
+
+ @SerializedName("suppressRollback")
+ public boolean suppressRollback;
+
+ @SerializedName("billingAccountNumber")
+ public String billingAccountNumber;
+
+ @SerializedName("callbackUrl")
+ public String callbackUrl;
+
+ @SerializedName("correlator")
+ public String correlator;
+
+ @SerializedName("orderNumber")
+ public String orderNumber;
+
+ @SerializedName("orderVersion")
+ public Integer orderVersion;
+
+
+ public SORequestInfo() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestParameters.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestParameters.java
index 043a8e848..6e45afe83 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestParameters.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestParameters.java
@@ -1,47 +1,47 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORequestParameters implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("subscriptionServiceType")
- public String subscriptionServiceType;
-
- @SerializedName("userParams")
- public List<Map<String, String>> userParams = new LinkedList<Map<String, String>>();
-
- public MSORequestParameters() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORequestParameters implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("subscriptionServiceType")
+ public String subscriptionServiceType;
+
+ @SerializedName("userParams")
+ public List<Map<String, String>> userParams = new LinkedList<Map<String, String>>();
+
+ public SORequestParameters() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestReferences.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestReferences.java
index c641db4bb..ea8ebc64a 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestReferences.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestReferences.java
@@ -1,38 +1,38 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORequestReferences implements Serializable {
-
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("instanceId")
- public String instanceId;
-
- @SerializedName("requestId")
- public String requestId;
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORequestReferences implements Serializable {
+
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("instanceId")
+ public String instanceId;
+
+ @SerializedName("requestId")
+ public String requestId;
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestStatus.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestStatus.java
index 598e9cbdc..d5174328e 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSORequestStatus.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SORequestStatus.java
@@ -1,51 +1,51 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSORequestStatus implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("percentProgress")
- public int percentProgress;
-
- @SerializedName("requestState")
- public String requestState;
-
- @SerializedName("timestamp")
- //public LocalDateTime timestamp;
- public String timestamp;
-
- @SerializedName("wasRolledBack")
- public boolean wasRolledBack;
-
-
- public MSORequestStatus() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+import com.google.gson.annotations.SerializedName;
+
+public class SORequestStatus implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("percentProgress")
+ public int percentProgress;
+
+ @SerializedName("requestState")
+ public String requestState;
+
+ @SerializedName("timestamp")
+ //public LocalDateTime timestamp;
+ public String timestamp;
+
+ @SerializedName("wasRolledBack")
+ public boolean wasRolledBack;
+
+
+ public SORequestStatus() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOResponse.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOResponse.java
index 2106959fb..ddf937593 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOResponse.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOResponse.java
@@ -24,7 +24,7 @@ import java.io.Serializable;
import com.google.gson.annotations.SerializedName;
-public class MSOResponse implements Serializable {
+public class SOResponse implements Serializable {
/**
*
@@ -32,17 +32,18 @@ public class MSOResponse implements Serializable {
private static final long serialVersionUID = -3283942659786236032L;
@SerializedName("requestReferences")
- public MSORequestReferences requestReferences;
+ public SORequestReferences requestReferences;
@SerializedName("requestError")
- public MSORequestError requestError;
+ public SORequestError requestError;
@SerializedName("request")
- public MSORequest request;
-
+ public SORequest request;
+
+ public int httpResponseCode;
- public MSOResponse() {
+ public SOResponse() {
}
}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOServiceException.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOServiceException.java
index 3322bf8f3..4a806ced4 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOServiceException.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOServiceException.java
@@ -1,48 +1,48 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-import java.util.LinkedList;
-import java.util.List;
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSOServiceException implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("messageId")
- public String messageId;
-
- @SerializedName("text")
- public String text;
-
- @SerializedName("variables")
- public List<String> variables = new LinkedList<String>();
-
- public MSOServiceException() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+import java.util.LinkedList;
+import java.util.List;
+
+import com.google.gson.annotations.SerializedName;
+
+public class SOServiceException implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("messageId")
+ public String messageId;
+
+ @SerializedName("text")
+ public String text;
+
+ @SerializedName("variables")
+ public List<String> variables = new LinkedList<String>();
+
+ public SOServiceException() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOSubscriberInfo.java b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOSubscriberInfo.java
index 957c4c70c..97d620f5c 100644
--- a/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/MSOSubscriberInfo.java
+++ b/controlloop/common/model-impl/mso/src/main/java/org/onap/policy/mso/SOSubscriberInfo.java
@@ -1,47 +1,47 @@
-/*-
- * ============LICENSE_START=======================================================
- * mso
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.mso;
-
-import java.io.Serializable;
-
-
-import com.google.gson.annotations.SerializedName;
-
-public class MSOSubscriberInfo implements Serializable {
-
- /**
- *
- */
- private static final long serialVersionUID = -3283942659786236032L;
-
- @SerializedName("globalSubscriberId")
- public String globalSubscriberId;
-
- @SerializedName("subscriberCommonSiteId")
- public String subscriberCommonSiteId;
-
- @SerializedName("subscriberName")
- public String subscriberName;
-
- public MSOSubscriberInfo() {
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * mso
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.mso;
+
+import java.io.Serializable;
+
+
+import com.google.gson.annotations.SerializedName;
+
+public class SOSubscriberInfo implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3283942659786236032L;
+
+ @SerializedName("globalSubscriberId")
+ public String globalSubscriberId;
+
+ @SerializedName("subscriberCommonSiteId")
+ public String subscriberCommonSiteId;
+
+ @SerializedName("subscriberName")
+ public String subscriberName;
+
+ public SOSubscriberInfo() {
+ }
+
+}
diff --git a/controlloop/common/model-impl/mso/src/test/java/org/onap/policy/mso/TestDemo.java b/controlloop/common/model-impl/mso/src/test/java/org/onap/policy/mso/TestDemo.java
index 2c8253f0b..bfbbf0b57 100644
--- a/controlloop/common/model-impl/mso/src/test/java/org/onap/policy/mso/TestDemo.java
+++ b/controlloop/common/model-impl/mso/src/test/java/org/onap/policy/mso/TestDemo.java
@@ -24,14 +24,14 @@ import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
-import org.onap.policy.mso.MSOCloudConfiguration;
-import org.onap.policy.mso.MSOModelInfo;
-import org.onap.policy.mso.MSORelatedInstance;
-import org.onap.policy.mso.MSORelatedInstanceListElement;
-import org.onap.policy.mso.MSORequest;
-import org.onap.policy.mso.MSORequestDetails;
-import org.onap.policy.mso.MSORequestInfo;
-import org.onap.policy.mso.MSORequestParameters;
+import org.onap.policy.mso.SOCloudConfiguration;
+import org.onap.policy.mso.SOModelInfo;
+import org.onap.policy.mso.SORelatedInstance;
+import org.onap.policy.mso.SORelatedInstanceListElement;
+import org.onap.policy.mso.SORequest;
+import org.onap.policy.mso.SORequestDetails;
+import org.onap.policy.mso.SORequestInfo;
+import org.onap.policy.mso.SORequestParameters;
import org.onap.policy.mso.util.Serialization;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,12 +41,12 @@ public class TestDemo {
@Test
public void test() {
- MSORequest request = new MSORequest();
- request.requestDetails = new MSORequestDetails();
- request.requestDetails.modelInfo = new MSOModelInfo();
- request.requestDetails.cloudConfiguration = new MSOCloudConfiguration();
- request.requestDetails.requestInfo = new MSORequestInfo();
- request.requestDetails.requestParameters = new MSORequestParameters();
+ SORequest request = new SORequest();
+ request.requestDetails = new SORequestDetails();
+ request.requestDetails.modelInfo = new SOModelInfo();
+ request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
+ request.requestDetails.requestInfo = new SORequestInfo();
+ request.requestDetails.requestParameters = new SORequestParameters();
request.requestDetails.modelInfo.modelType = "vfModule";
request.requestDetails.modelInfo.modelInvariantId = "ff5256d2-5a33-55df-13ab-12abad84e7ff";
@@ -57,24 +57,24 @@ public class TestDemo {
request.requestDetails.cloudConfiguration.lcpCloudRegionId = "mdt1";
request.requestDetails.cloudConfiguration.tenantId = "88a6ca3ee0394ade9403f075db23167e";
- request.requestDetails.requestInfo.instanceName = "MSOTEST103a-vSAMP12_base_module-0";
+ request.requestDetails.requestInfo.instanceName = "SOTEST103a-vSAMP12_base_module-0";
request.requestDetails.requestInfo.source = "VID";
request.requestDetails.requestInfo.suppressRollback = true;
- MSORelatedInstanceListElement relatedInstanceListElement1 = new MSORelatedInstanceListElement();
- MSORelatedInstanceListElement relatedInstanceListElement2 = new MSORelatedInstanceListElement();
- MSORelatedInstanceListElement relatedInstanceListElement3 = new MSORelatedInstanceListElement();
- relatedInstanceListElement1.relatedInstance = new MSORelatedInstance();
- relatedInstanceListElement2.relatedInstance = new MSORelatedInstance();
- relatedInstanceListElement3.relatedInstance = new MSORelatedInstance();
+ SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
+ SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
+ SORelatedInstanceListElement relatedInstanceListElement3 = new SORelatedInstanceListElement();
+ relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
+ relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
+ relatedInstanceListElement3.relatedInstance = new SORelatedInstance();
relatedInstanceListElement1.relatedInstance.instanceId = "17ef4658-bd1f-4ef0-9ca0-ea76e2bf122c";
- relatedInstanceListElement1.relatedInstance.instanceName = "MSOTESTVOL103a-vSAMP12_base_module-0_vol";
- relatedInstanceListElement1.relatedInstance.modelInfo = new MSOModelInfo();
+ relatedInstanceListElement1.relatedInstance.instanceName = "SOTESTVOL103a-vSAMP12_base_module-0_vol";
+ relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "volumeGroup";
relatedInstanceListElement2.relatedInstance.instanceId = "serviceInstanceId";
- relatedInstanceListElement2.relatedInstance.modelInfo = new MSOModelInfo();
+ relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "service";
relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = "ff3514e3-5a33-55df-13ab-12abad84e7ff";
relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = "fe6985cd-ea33-3346-ac12-ab121484a3fe";
@@ -82,7 +82,7 @@ public class TestDemo {
relatedInstanceListElement2.relatedInstance.modelInfo.modelVersion = "1.0";
relatedInstanceListElement3.relatedInstance.instanceId = "vnfInstanceId";
- relatedInstanceListElement3.relatedInstance.modelInfo = new MSOModelInfo();
+ relatedInstanceListElement3.relatedInstance.modelInfo = new SOModelInfo();
relatedInstanceListElement3.relatedInstance.modelInfo.modelType = "vnf";
relatedInstanceListElement3.relatedInstance.modelInfo.modelInvariantId = "ff5256d1-5a33-55df-13ab-12abad84e7ff";
relatedInstanceListElement3.relatedInstance.modelInfo.modelNameVersionId = "fe6478e4-ea33-3346-ac12-ab121484a3fe";
@@ -94,23 +94,17 @@ public class TestDemo {
request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
request.requestDetails.relatedInstanceList.add(relatedInstanceListElement3);
- Map<String, String> userParam1 = new HashMap<String, String>();
+ Map<String, String> userParam1 = new HashMap<>();
userParam1.put("name1", "value1");
- Map<String, String> userParam2 = new HashMap<String, String>();
+ Map<String, String> userParam2 = new HashMap<>();
userParam2.put("name2", "value2");
request.requestDetails.requestParameters.userParams.add(userParam1);
request.requestDetails.requestParameters.userParams.add(userParam2);
- String body = Serialization.gsonPretty.toJson(request);
- logger.debug(body);
-
- //MSOResponse response = MSOManager.createModuleInstance("http://localhost:7780/", "my_username", "my_passwd", request);
-
- //body = Serialization.gsonPretty.toJson(response);
- //logger.debug(body);
-
+ logger.debug(Serialization.gsonPretty.toJson(request));
+
}
@Test
@@ -118,13 +112,13 @@ public class TestDemo {
logger.debug("** HACK **");
- MSORequest request = new MSORequest();
+ SORequest request = new SORequest();
//
- request.requestDetails = new MSORequestDetails();
- request.requestDetails.modelInfo = new MSOModelInfo();
- request.requestDetails.cloudConfiguration = new MSOCloudConfiguration();
- request.requestDetails.requestInfo = new MSORequestInfo();
- request.requestDetails.requestParameters = new MSORequestParameters();
+ request.requestDetails = new SORequestDetails();
+ request.requestDetails.modelInfo = new SOModelInfo();
+ request.requestDetails.cloudConfiguration = new SOCloudConfiguration();
+ request.requestDetails.requestInfo = new SORequestInfo();
+ request.requestDetails.requestParameters = new SORequestParameters();
request.requestDetails.requestParameters.userParams = null;
request.requestDetails.modelInfo.modelType = "vfModule";
@@ -140,14 +134,14 @@ public class TestDemo {
request.requestDetails.requestInfo.source = "POLICY";
request.requestDetails.requestInfo.suppressRollback = false;
- MSORelatedInstanceListElement relatedInstanceListElement1 = new MSORelatedInstanceListElement();
- MSORelatedInstanceListElement relatedInstanceListElement2 = new MSORelatedInstanceListElement();
- relatedInstanceListElement1.relatedInstance = new MSORelatedInstance();
- relatedInstanceListElement2.relatedInstance = new MSORelatedInstance();
+ SORelatedInstanceListElement relatedInstanceListElement1 = new SORelatedInstanceListElement();
+ SORelatedInstanceListElement relatedInstanceListElement2 = new SORelatedInstanceListElement();
+ relatedInstanceListElement1.relatedInstance = new SORelatedInstance();
+ relatedInstanceListElement2.relatedInstance = new SORelatedInstance();
String serviceInstanceId = "98af39ce-6408-466b-921f-c2c7a8f59ed6";
relatedInstanceListElement1.relatedInstance.instanceId = serviceInstanceId;
- relatedInstanceListElement1.relatedInstance.modelInfo = new MSOModelInfo();
+ relatedInstanceListElement1.relatedInstance.modelInfo = new SOModelInfo();
relatedInstanceListElement1.relatedInstance.modelInfo.modelType = "service";
relatedInstanceListElement1.relatedInstance.modelInfo.modelInvariantId = "24329a0c-1d57-4210-b1af-a65df64e9d59";
relatedInstanceListElement1.relatedInstance.modelInfo.modelNameVersionId = "ac642881-8e7e-4217-bd64-16ad41c42e30";
@@ -156,7 +150,7 @@ public class TestDemo {
String vnfInstanceId = "8eb411b8-a936-412f-b01f-9a9a435c0e93";
relatedInstanceListElement2.relatedInstance.instanceId = vnfInstanceId;
- relatedInstanceListElement2.relatedInstance.modelInfo = new MSOModelInfo();
+ relatedInstanceListElement2.relatedInstance.modelInfo = new SOModelInfo();
relatedInstanceListElement2.relatedInstance.modelInfo.modelType = "vnf";
relatedInstanceListElement2.relatedInstance.modelInfo.modelInvariantId = "09fd971e-db5f-475d-997c-cf6704b6b8fe";
relatedInstanceListElement2.relatedInstance.modelInfo.modelNameVersionId = "152ed917-6dcc-46ee-bf8a-a775c5aa5a74";
@@ -167,8 +161,7 @@ public class TestDemo {
request.requestDetails.relatedInstanceList.add(relatedInstanceListElement1);
request.requestDetails.relatedInstanceList.add(relatedInstanceListElement2);
- String body = Serialization.gsonPretty.toJson(request);
- logger.debug(body);
+ logger.debug(Serialization.gsonPretty.toJson(request));
}
}
diff --git a/controlloop/common/policy-yaml/src/main/java/org/onap/policy/controlloop/policy/TargetType.java b/controlloop/common/policy-yaml/src/main/java/org/onap/policy/controlloop/policy/TargetType.java
index abf851a75..7c8ca89cf 100644
--- a/controlloop/common/policy-yaml/src/main/java/org/onap/policy/controlloop/policy/TargetType.java
+++ b/controlloop/common/policy-yaml/src/main/java/org/onap/policy/controlloop/policy/TargetType.java
@@ -23,7 +23,8 @@ package org.onap.policy.controlloop.policy;
public enum TargetType {
VM("VM"),
PNF("PNF"),
- VFC("VFC")
+ VFC("VFC"),
+ VNF("VNF")
;
private String target;