Replace vfmodule: expect optional retainAssignments param 94/98794/2
authorIttay Stern <ittay.stern@att.com>
Sun, 24 Nov 2019 16:13:17 +0000 (18:13 +0200)
committerIttay Stern <ittay.stern@att.com>
Mon, 25 Nov 2019 08:22:16 +0000 (10:22 +0200)
Issue-ID: VID-603
Change-Id: Ifda72845f2c5b473bba7ac64deab8d4b0f11ef10
Signed-off-by: Ittay Stern <ittay.stern@att.com>
vid-app-common/src/main/java/org/onap/vid/job/command/MsoRequestBuilder.kt
vid-app-common/src/main/java/org/onap/vid/model/serviceInstantiation/VfModule.java
vid-app-common/src/main/java/org/onap/vid/mso/model/VfModuleOrVolumeGroupRequestDetails.kt
vid-app-common/src/test/java/org/onap/vid/job/command/ResourceCommandTest.java
vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBaseTest.java
vid-app-common/src/test/java/org/onap/vid/services/MsoRequestBuilderTest.java

index ecf7fc9..c392d07 100644 (file)
@@ -140,7 +140,8 @@ class MsoRequestBuilder
             vgInstanceId: String?, userId: String, testApi: String?
     ): RequestDetailsWrapper<VfModuleOrVolumeGroupRequestDetails> {
         val requestParameters = { userParams: List<UserParamTypes> ->
-            RequestParametersVfModuleUpgrade(userParams, vfModuleDetails.isUsePreload, testApi, nullSafeNegate(vfModuleDetails.isRetainVolumeGroups))
+            RequestParametersVfModuleUpgrade(userParams, vfModuleDetails.isUsePreload, testApi,
+                    vfModuleDetails.isRetainAssignments, nullSafeNegate(vfModuleDetails.isRetainVolumeGroups))
         }
 
         return generateVfModuleRequestWithRequestParams(vfModuleDetails, serviceModelInfo, serviceInstanceId,
index 5c847b8..ad5b39e 100644 (file)
@@ -44,9 +44,11 @@ public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest
        private Map<String, String> supplementaryParams;
 
        @JsonInclude(NON_NULL)
-       @Nullable
        private final Boolean retainVolumeGroups;
 
+       @JsonInclude(NON_NULL)
+       private Boolean retainAssignments;
+
        public VfModule(@JsonProperty("modelInfo") ModelInfo modelInfo,
                @JsonProperty("instanceName") String instanceName,
                @JsonProperty("volumeGroupName") String volumeGroupInstanceName,
@@ -62,13 +64,15 @@ public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest
                @JsonProperty("trackById") String trackById,
                @JsonProperty("isFailed") Boolean isFailed,
                @JsonProperty("statusMessage") String statusMessage,
-               @JsonProperty("retainVolumeGroups") Boolean retainVolumeGroups,
+               @Nullable @JsonProperty("retainAssignments") Boolean retainAssignments,
+               @Nullable @JsonProperty("retainVolumeGroups") Boolean retainVolumeGroups,
                @JsonProperty("position") Integer position) {
                super(modelInfo, instanceName, action, lcpCloudRegionId, legacyRegion, tenantId, instanceParams, rollbackOnFailure, instanceId, trackById, isFailed, statusMessage,
                        position);
                this.volumeGroupInstanceName = volumeGroupInstanceName;
                this.usePreload = usePreload;
                this.supplementaryParams = supplementaryParams;
+               this.retainAssignments = retainAssignments;
                this.retainVolumeGroups = retainVolumeGroups;
        }
 
@@ -100,6 +104,11 @@ public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest
                return JobType.VfmoduleInstantiation;
        }
 
+       @Nullable
+       public Boolean isRetainAssignments() {
+               return retainAssignments;
+       }
+
        @Nullable
        public Boolean isRetainVolumeGroups() {
                return retainVolumeGroups;
@@ -122,6 +131,7 @@ public class VfModule extends BaseResource implements JobAdapter.AsyncJobRequest
                                this.getTrackById(),
                                this.getIsFailed(),
                                this.getStatusMessage(),
+                               this.isRetainAssignments(),
                                this.isRetainVolumeGroups(),
                                this.getPosition());
        }
index f431871..bba4081 100644 (file)
@@ -117,6 +117,7 @@ class RequestParametersVfModuleUpgrade(
         userParams: List<UserParamTypes>,
         usePreload: Boolean?,
         testApi: String?,
+        @get:JsonInclude(NON_NULL) val retainAssignments: Boolean?,
         @get:JsonInclude(NON_NULL) val rebuildVolumeGroups: Boolean?
 ) : RequestParametersVfModuleOrVolumeGroup(userParams, usePreload, testApi)
 
index 525acf9..db856d7 100644 (file)
@@ -319,8 +319,8 @@ public class ResourceCommandTest {
         }
 
         static VfModule createVfModule(Action action) {
-            return new VfModule(mock(ModelInfo.class), null, null, action.toString(), null, null, null, null, null, false, false, null, null, null, null,
-                null, null);
+            return new VfModule(mock(ModelInfo.class), null, null, action.toString(), null, null, null, null, null,
+                false, false, null, null, null, null, null, null, null);
         }
 
         static Network createNetwork(Action action) {
index d6af2ad..d1b76df 100644 (file)
@@ -172,12 +172,12 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
             vfModuleInfo.setModelVersion("10.0");
             return new VfModule(vfModuleInfo, instanceName, volumeGroupInstanceName, Action.Create.name(), "mdt1", null,
                     "88a6ca3ee0394ade9403f075db23167e", instanceParams, supplementaryParams, false, true, null, UUID.randomUUID().toString(), null, null,
-                null, null);
+                null, null, null);
         }
 
         return new VfModule(vfModuleInfo, instanceName, volumeGroupInstanceName, Action.Create.name(), null, null, null,
                 instanceParams, supplementaryParams, false, false, null, UUID.randomUUID().toString(), null,
-            null, null, null);
+            null, null, null, null);
     }
 
     protected ModelInfo createVfModuleModelInfo(String modelName, String modelVersion, String modelVersionId, String modelInvariantId, String modelCustomizationId, String modelCustomizationName) {
@@ -185,9 +185,9 @@ public class AsyncInstantiationBaseTest extends AbstractTestNGSpringContextTests
     }
 
     protected VfModule createVfModuleForReplace(ModelInfo vfModuleModelInfo, String instanceName,
-        String lcpCloudRegionId, String tenantId, Boolean retainVolumeGroups) {
+        String lcpCloudRegionId, String tenantId, Boolean retainAssignments, Boolean retainVolumeGroups) {
         return new VfModule( vfModuleModelInfo, instanceName, null, Action.Upgrade.name(), lcpCloudRegionId, null, tenantId,
-                null, null, true, null, null, UUID.randomUUID().toString(), null, null, retainVolumeGroups, null);
+                null, null, true, null, null, UUID.randomUUID().toString(), null, null, retainAssignments, retainVolumeGroups, null);
     }
 
     protected ModelInfo createVnfModelInfo(boolean isAlacarte) {
index 059e2e9..d2370af 100644 (file)
@@ -611,24 +611,32 @@ public class MsoRequestBuilderTest extends AsyncInstantiationBaseTest {
         assertThat(result, jsonEquals(expected).when(IGNORING_ARRAY_ORDER));
     }
 
+    @Test(dataProvider = "trueAndFalse", dataProviderClass = TestUtils.class)
+    public void generateReplaceVfModuleRequest_whenRetainAssignmentsProvidedFromFrontend_retainAssignmentsToMsoIsTheSame(boolean retainAssignments) {
+
+        assertThat(generatedVfModuleReplaceRequest(retainAssignments, null),
+            jsonPartEquals("requestDetails.requestParameters.retainAssignments", retainAssignments));
+    }
+
     @Test
     public void generateReplaceVfModuleRequest_whenRetainVolumeGroupIsTrue_rebuildVolumeGroupIsFalse() {
         boolean retainVolumeGroups = true;
 
-        assertThat(generatedVfModuleReplaceRequest(retainVolumeGroups),
+        assertThat(generatedVfModuleReplaceRequest(null, retainVolumeGroups),
             jsonPartEquals("requestDetails.requestParameters.rebuildVolumeGroups", false));
     }
 
     @Test
     public void generateReplaceVfModuleRequest_verifyResultAsExpected() {
         Boolean retainVolumeGroups = null;
+        Boolean retainAssignments = null;
 
         String expected = TestUtils.readFileAsString("/payload_jsons/vfmodule/replace_vfmodule__payload_to_mso.json");
-        assertThat(generatedVfModuleReplaceRequest(retainVolumeGroups), jsonEquals(expected).when(IGNORING_ARRAY_ORDER));
+        assertThat(generatedVfModuleReplaceRequest(retainAssignments, retainVolumeGroups), jsonEquals(expected).when(IGNORING_ARRAY_ORDER));
     }
 
     private RequestDetailsWrapper<VfModuleOrVolumeGroupRequestDetails> generatedVfModuleReplaceRequest(
-        Boolean retainVolumeGroups) {
+        Boolean retainAssignments, Boolean retainVolumeGroups) {
         when(featureManager.isActive(Features.FLAG_1810_CR_ADD_CLOUD_OWNER_TO_MSO_REQUEST)).thenReturn(true);
         when(aaiClient.getCloudOwnerByCloudRegionId("regionOne")).thenReturn("irma-aic");
 
@@ -636,7 +644,7 @@ public class MsoRequestBuilderTest extends AsyncInstantiationBaseTest {
                 "f7a867f2-596b-4f4a-a128-421e825a6190", "newest-model-customization-uuid-vfm","newest-model-customization-name-vfm" );
 
         VfModule vfModuleDetails = createVfModuleForReplace(vfModuleModelInfo, "replace_module", "regionOne", "0422ffb57ba042c0800a29dc85ca70f8",
-            retainVolumeGroups);
+            retainAssignments, retainVolumeGroups);
 
         ModelInfo serviceModelInfo = createServiceModelInfo("newest-model-name-service", "newest-model-version-service", "newest-model-uuid-service", "b16a9398-ffa3-4041-b78c-2956b8ad9c7b", null, null );