diff options
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation')
6 files changed, 307 insertions, 135 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/BaseResource.java b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/BaseResource.java new file mode 100644 index 000000000..653c73477 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/BaseResource.java @@ -0,0 +1,115 @@ +/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * 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.vid.model.serviceInstantiation; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.ImmutableMap; +import org.apache.commons.lang3.StringUtils; +import org.onap.vid.job.JobAdapter; +import org.onap.vid.model.Action; +import org.onap.vid.mso.model.ModelInfo; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +public abstract class BaseResource implements JobAdapter.AsyncJobRequest { + + protected final String instanceId; + protected ModelInfo modelInfo; + + protected String instanceName; + + protected final Action action; + + protected String lcpCloudRegionId; + + protected String tenantId; + + protected List<Map<String, String>> instanceParams; + + protected boolean rollbackOnFailure; + + private static final Map<String, Action> actionStingToEnumMap = ImmutableMap.of( + "Delete", Action.Delete, + "Create", Action.Create, + "None", Action.None, + "Update_Delete", Action.Delete, + "None_Delete", Action.Delete + ); + + + protected BaseResource(@JsonProperty("modelInfo") ModelInfo modelInfo, + @JsonProperty("instanceName") String instanceName, + @JsonProperty("action") String action, + @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId, + @JsonProperty("legacyRegion") String legacyRegion, + @JsonProperty("tenantId") String tenantId, + @JsonProperty("instanceParams") List<Map<String, String>> instanceParams, + @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure, + @JsonProperty("instanceId") String instanceId) { + this.modelInfo = modelInfo; + this.modelInfo.setModelType(getModelType()); + this.rollbackOnFailure = rollbackOnFailure; + this.instanceName = StringUtils.defaultString(instanceName, "");; + this.action = actionStringToEnum(action); + this.lcpCloudRegionId = StringUtils.isNotEmpty(legacyRegion) ? legacyRegion : lcpCloudRegionId; + this.tenantId = tenantId; + this.instanceParams = instanceParams; + this.instanceId = instanceId; + } + + private Action actionStringToEnum(String actionAsString) { + return actionStingToEnumMap.get(actionAsString); + } + + public ModelInfo getModelInfo() { + return modelInfo; + } + + public String getInstanceName() { + return instanceName; + } + + public Action getAction() { + return action; + } + + public String getLcpCloudRegionId() { + return lcpCloudRegionId; + } + + public String getTenantId() { + return tenantId; + } + + public List<Map<String, String>> getInstanceParams() { + return instanceParams == null ? Collections.emptyList() : instanceParams; + } + + public boolean isRollbackOnFailure() { return rollbackOnFailure; } + + public String getInstanceId() { + return instanceId; + } + + protected abstract String getModelType(); +} diff --git a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/InstanceGroup.java b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/InstanceGroup.java new file mode 100644 index 000000000..6155480c7 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/InstanceGroup.java @@ -0,0 +1,22 @@ +package org.onap.vid.model.serviceInstantiation; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.onap.vid.job.JobAdapter; +import org.onap.vid.mso.model.ModelInfo; + +public class InstanceGroup extends BaseResource implements JobAdapter.AsyncJobRequest { + + public InstanceGroup(@JsonProperty("modelInfo") ModelInfo modelInfo, + @JsonProperty("instanceName") String instanceName, + @JsonProperty("action") String action, + @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure, + @JsonProperty("instanceId") String instanceId) { + + super(modelInfo, instanceName, action, null, null, null, null, rollbackOnFailure, instanceId); + } + + @Override + protected String getModelType() { + return "instanceGroup"; + } +} diff --git a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/Network.java b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/Network.java new file mode 100644 index 000000000..0e0c7e139 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/Network.java @@ -0,0 +1,74 @@ +/*- + * ============LICENSE_START======================================================= + * VID + * ================================================================================ + * 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.vid.model.serviceInstantiation; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.onap.vid.job.JobAdapter; +import org.onap.vid.mso.model.ModelInfo; + +import java.util.List; +import java.util.Map; + +public class Network extends BaseResource implements JobAdapter.AsyncJobRequest { + + private final String productFamilyId; + + private final String platformName; + + private final String lineOfBusiness; + + public Network(@JsonProperty("modelInfo") ModelInfo modelInfo, + @JsonProperty("productFamilyId") String productFamilyId, + @JsonProperty("instanceName") String instanceName, + @JsonProperty("action") String action, + @JsonProperty("platformName") String platformName, + @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId, + @JsonProperty("legacyRegion") String legacyRegion, + @JsonProperty("tenantId") String tenantId, + @JsonProperty("instanceParams") List<Map<String, String>> instanceParams, + @JsonProperty("lineOfBusinessName") String lineOfBusiness, + @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure, + @JsonProperty("instanceId") String instanceId) { + + super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId); + this.productFamilyId = productFamilyId; + this.platformName = platformName; + this.lineOfBusiness = lineOfBusiness; + } + + public String getProductFamilyId() { + return productFamilyId; + } + + public String getPlatformName() { + return platformName; + } + + public String getLineOfBusiness() { + return lineOfBusiness; + } + + @Override + protected String getModelType() { + return "network"; + } + +} diff --git a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/ServiceInstantiation.java b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/ServiceInstantiation.java index 1d2e69d54..3cb1e9492 100644 --- a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/ServiceInstantiation.java +++ b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/ServiceInstantiation.java @@ -1,16 +1,14 @@ package org.onap.vid.model.serviceInstantiation; import com.fasterxml.jackson.annotation.JsonProperty; -import org.onap.vid.domain.mso.ModelInfo; import org.onap.vid.job.JobAdapter; +import org.onap.vid.mso.model.ModelInfo; import java.util.Collections; import java.util.List; import java.util.Map; -public class ServiceInstantiation implements JobAdapter.AsyncJobRequest { - - private final ModelInfo modelInfo; +public class ServiceInstantiation extends BaseResource implements JobAdapter.AsyncJobRequest { private final String owningEntityId; @@ -24,16 +22,8 @@ public class ServiceInstantiation implements JobAdapter.AsyncJobRequest { private final String productFamilyId; - private final String instanceName; - - private final Boolean isUserProvidedNaming; - private final String subscriptionServiceType; - private final String lcpCloudRegionId; - - private final String tenantId; - private final String tenantName; private final String aicZoneId; @@ -42,13 +32,17 @@ public class ServiceInstantiation implements JobAdapter.AsyncJobRequest { private final Map<String, Vnf> vnfs; - private final List<Map<String,String>> instanceParams; + private final Map<String, Network> networks; + + private final Map<String, InstanceGroup> vnfGroups; private final boolean isPause; private final int bulkSize; - private final boolean rollbackOnFailure; + private final String testApi; + + private final boolean isALaCarte; public ServiceInstantiation(@JsonProperty("modelInfo") ModelInfo modelInfo, @JsonProperty("owningEntityId") String owningEntityId, @@ -58,45 +52,43 @@ public class ServiceInstantiation implements JobAdapter.AsyncJobRequest { @JsonProperty("subscriberName") String subscriberName, @JsonProperty("productFamilyId") String productFamilyId, @JsonProperty("instanceName") String instanceName, - @JsonProperty("isUserProvidedNaming") Boolean isUserProvidedNaming, @JsonProperty("subscriptionServiceType") String subscriptionServiceType, @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId, + @JsonProperty("legacyRegion") String legacyRegion, @JsonProperty("tenantId") String tenantId, @JsonProperty("tenantName") String tenantName, @JsonProperty("aicZoneId") String aicZoneId, @JsonProperty("aicZoneName") String aicZoneName, @JsonProperty("vnfs") Map<String, Vnf> vnfs, + @JsonProperty("networks") Map<String, Network> networks, + @JsonProperty("vnfGroups") Map<String, InstanceGroup> vnfGroups, @JsonProperty("instanceParams") List<Map<String, String>> instanceParams, @JsonProperty("pause") boolean isPause, @JsonProperty("bulkSize") int bulkSize, - @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure + @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure, + @JsonProperty("isALaCarte") boolean isALaCarte, + @JsonProperty("testApi") String testApi, + @JsonProperty("instanceId") String instanceId, + @JsonProperty("action") String action ) { - - this.modelInfo = modelInfo; - this.modelInfo.setModelType("service"); + super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId); this.owningEntityId = owningEntityId; this.owningEntityName = owningEntityName; this.projectName = projectName; this.globalSubscriberId = globalSubscriberId; this.subscriberName = subscriberName; this.productFamilyId = productFamilyId; - this.instanceName = instanceName; - this.isUserProvidedNaming = isUserProvidedNaming; this.subscriptionServiceType = subscriptionServiceType; - this.lcpCloudRegionId = lcpCloudRegionId; - this.tenantId = tenantId; this.tenantName = tenantName; this.aicZoneId = aicZoneId; this.aicZoneName = aicZoneName; this.vnfs = vnfs; - this.instanceParams = instanceParams; + this.networks = networks; + this.vnfGroups = vnfGroups; this.isPause = isPause; this.bulkSize = bulkSize; - this.rollbackOnFailure = rollbackOnFailure; - } - - public ModelInfo getModelInfo() { - return modelInfo; + this.isALaCarte = isALaCarte; + this.testApi = isALaCarte ? testApi : null; } public String getOwningEntityId() { @@ -123,25 +115,10 @@ public class ServiceInstantiation implements JobAdapter.AsyncJobRequest { return productFamilyId; } - public String getInstanceName() { - return instanceName; - } - - @JsonProperty("isUserProvidedNaming") - public Boolean isUserProvidedNaming() { return isUserProvidedNaming; } - public String getSubscriptionServiceType() { return subscriptionServiceType; } - public String getLcpCloudRegionId() { - return lcpCloudRegionId; - } - - public String getTenantId() { - return tenantId; - } - public String getTenantName() { return tenantName; } @@ -155,11 +132,15 @@ public class ServiceInstantiation implements JobAdapter.AsyncJobRequest { } public Map<String, Vnf> getVnfs() { - return vnfs; + return vnfs == null ? Collections.emptyMap() : vnfs; + } + + public Map<String, Network> getNetworks() { + return networks == null ? Collections.emptyMap() : networks; } - public List<Map<String, String>> getInstanceParams() { - return instanceParams == null ? Collections.emptyList() : instanceParams; + public Map<String, InstanceGroup> getVnfGroups() { + return vnfGroups == null ? Collections.emptyMap() : vnfGroups; } public boolean isPause() { @@ -168,7 +149,18 @@ public class ServiceInstantiation implements JobAdapter.AsyncJobRequest { public int getBulkSize() { return bulkSize; } - public boolean isRollbackOnFailure() { - return rollbackOnFailure; + @Override + protected String getModelType() { + return "service"; + } + + @JsonProperty("isALaCarte") + public boolean isALaCarte() { + return isALaCarte; } + + public String getTestApi() { + return this.testApi; + } + }
\ No newline at end of file diff --git a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/VfModule.java b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/VfModule.java index f63fb3365..b930ba4db 100644 --- a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/VfModule.java +++ b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/VfModule.java @@ -22,10 +22,9 @@ package org.onap.vid.model.serviceInstantiation; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.commons.lang3.StringUtils; -import org.onap.vid.domain.mso.ModelInfo; +import org.onap.vid.job.JobAdapter; +import org.onap.vid.mso.model.ModelInfo; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -34,42 +33,47 @@ import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; /** * The Class VfModule. */ -public class VfModule { +@JsonInclude(NON_NULL) +public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest { - - - private final ModelInfo modelInfo; - - @JsonInclude(NON_NULL) private final String instanceName; - - private final List<Map<String, String>> instanceParams; @JsonInclude(NON_NULL) private final String volumeGroupInstanceName; - - public VfModule(@JsonProperty("modelInfo") ModelInfo modelInfo, - @JsonProperty("instanceName") String instanceName, - @JsonProperty(value = "volumeGroupName") String volumeGroupInstanceName, - @JsonProperty("instanceParams") List<Map<String, String>> instanceParams) { - this.modelInfo = modelInfo; - this.modelInfo.setModelType("vfModule"); - this.instanceName = instanceName; - this.instanceParams = instanceParams; + private boolean usePreload; + private Map<String, String> supplementaryParams; + + public VfModule( @JsonProperty("modelInfo") ModelInfo modelInfo, + @JsonProperty("instanceName") String instanceName, + @JsonProperty("volumeGroupName") String volumeGroupInstanceName, + @JsonProperty("action") String action, + @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId, + @JsonProperty("legacyRegion") String legacyRegion, + @JsonProperty("tenantId") String tenantId, + @JsonProperty("instanceParams") List<Map<String, String>> instanceParams, + @JsonProperty("supplementaryFileContent") Map<String, String> supplementaryParams, + @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure, + @JsonProperty("sdncPreLoad") boolean usePreload, + @JsonProperty("instanceId") String instanceId) { + super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId); this.volumeGroupInstanceName = volumeGroupInstanceName; + this.usePreload = usePreload; + this.supplementaryParams = supplementaryParams; } - public ModelInfo getModelInfo() { - return modelInfo; + public String getVolumeGroupInstanceName() { + return volumeGroupInstanceName; } - public String getInstanceName() { - return instanceName; + public boolean isUsePreload() { + return usePreload; } - public String getVolumeGroupInstanceName() { - return volumeGroupInstanceName; + public Map<String, String> getSupplementaryParams() { + return supplementaryParams; } - public List<Map<String, String>> getInstanceParams() { - return instanceParams == null ? Collections.emptyList() : instanceParams; + @Override + protected String getModelType() { + return "vfModule"; } + }
\ No newline at end of file diff --git a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/Vnf.java b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/Vnf.java index 621754d17..3856e8894 100644 --- a/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/Vnf.java +++ b/vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/Vnf.java @@ -22,99 +22,64 @@ package org.onap.vid.model.serviceInstantiation; import com.fasterxml.jackson.annotation.JsonProperty; -import org.apache.commons.lang3.StringUtils; -import org.onap.vid.domain.mso.ModelInfo; +import org.onap.vid.job.JobAdapter; +import org.onap.vid.mso.model.ModelInfo; -import java.util.Collections; import java.util.List; import java.util.Map; /** * The Class VNF. */ -public class Vnf { - private final ModelInfo modelInfo; +public class Vnf extends BaseResource implements JobAdapter.AsyncJobRequest { private final String productFamilyId; - private final String instanceName; - private final String platformName; - private final String lcpCloudRegionId; - - private final String tenantId; - - private final Boolean isUserProvidedNaming; - - private final List<Map<String, String>> instanceParams; - private final String lineOfBusiness; - private final Map<String, Map<String, VfModule>> vfModules; public Vnf(@JsonProperty("modelInfo") ModelInfo modelInfo, - @JsonProperty("productFamilyId") String productFamilyId, - @JsonProperty("instanceName") String instanceName, - @JsonProperty("isUserProvidedNaming") Boolean isUserProvidedNaming, - @JsonProperty("platformName") String platformName, - @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId, - @JsonProperty("tenantId") String tenantId, - @JsonProperty("instanceParams") List<Map<String, String>> instanceParams, - @JsonProperty("lineOfBusinessName") String lineOfBusiness, - @JsonProperty("vfModules") Map<String, Map<String, VfModule>> vfModules) { - this.modelInfo = modelInfo; - this.modelInfo.setModelType("vnf"); + @JsonProperty("productFamilyId") String productFamilyId, + @JsonProperty("instanceName") String instanceName, + @JsonProperty("action") String action, + @JsonProperty("platformName") String platformName, + @JsonProperty("lcpCloudRegionId") String lcpCloudRegionId, + @JsonProperty("legacyRegion") String legacyRegion, + @JsonProperty("tenantId") String tenantId, + @JsonProperty("instanceParams") List<Map<String, String>> instanceParams, + @JsonProperty("lineOfBusinessName") String lineOfBusiness, + @JsonProperty("rollbackOnFailure") boolean rollbackOnFailure, + @JsonProperty("instanceId") String instanceId, + @JsonProperty("vfModules") Map<String, Map<String, VfModule>> vfModules) { + + super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId); this.productFamilyId = productFamilyId; - this.instanceName = instanceName; - this.isUserProvidedNaming = isUserProvidedNaming; this.platformName = platformName; - this.lcpCloudRegionId = lcpCloudRegionId; - this.tenantId = tenantId; - this.instanceParams = instanceParams; - this.vfModules = vfModules; this.lineOfBusiness = lineOfBusiness; - } - - public ModelInfo getModelInfo() { - return modelInfo; + this.vfModules = vfModules; } public String getProductFamilyId() { return productFamilyId; } - public String getInstanceName() { - return instanceName; - } - - @JsonProperty("isUserProvidedNaming") - public Boolean isUserProvidedNaming() { - return isUserProvidedNaming; - } - public String getPlatformName() { return platformName; } - public String getLcpCloudRegionId() { - return lcpCloudRegionId; - } - - public String getTenantId() { - return tenantId; - } - - public List<Map<String, String>> getInstanceParams() { - return instanceParams == null ? Collections.emptyList() : instanceParams; + public String getLineOfBusiness() { + return lineOfBusiness; } public Map<String, Map<String, VfModule>> getVfModules() { return vfModules; } - public String getLineOfBusiness() { - return lineOfBusiness; + @Override + protected String getModelType() { + return "vnf"; } } |