use config value to set enable heatbridge flag 74/99174/1
authorMnushkin, Dmitry <dmitry.mnushkin@att.com>
Wed, 4 Dec 2019 21:55:13 +0000 (16:55 -0500)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Wed, 4 Dec 2019 21:55:13 +0000 (16:55 -0500)
use config value to set enable heatbridge flag

Issue-ID: SO-2552
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: I0d92b15cc2f31ce01c60c901f0f3af1c4105e06c

14 files changed:
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapper.java
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapper.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapperTest.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperPayloadTest.java
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleAddonRequest.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestBridgeEnabled.json [new file with mode: 0644]
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestDhcpDisabled.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestMultipleDhcp.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestNoUserParams.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestTrueBackout.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestWithCloudResources.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestWithSingleAvailabilityZone.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleWithNoEnvironmentAndWorkloadContextRequest.json
bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleWithVolumeGroupRequest.json

index ebebae3..293bcf9 100644 (file)
@@ -52,6 +52,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 @Component
 public class VnfAdapterObjectMapper {
     private ObjectMapper mapper = new ObjectMapper();
+    private static final String ENABLE_BRIDGE = "mso.bridgeEnabled";
 
     @PostConstruct
     public void init() {
@@ -86,6 +87,10 @@ public class VnfAdapterObjectMapper {
         createVolumeGroupRequest.setMessageId(messageId);
         createVolumeGroupRequest.setNotificationUrl(createCallbackUrl("VNFAResponse", messageId));
 
+        String enableBridge = getProperty(ENABLE_BRIDGE);
+        if (enableBridge == null || Boolean.valueOf(enableBridge)) {
+            createVolumeGroupRequest.setEnableBridge(true);
+        }
         return createVolumeGroupRequest;
     }
 
index 685531e..9857adb 100644 (file)
@@ -68,6 +68,7 @@ import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfresourceassign
 import org.onap.sdnc.northbound.client.model.GenericResourceApiVnftopologyVnfTopology;
 import org.onap.so.adapters.vnfrest.CreateVfModuleRequest;
 import org.onap.so.adapters.vnfrest.DeleteVfModuleRequest;
+import org.onap.so.bpmn.core.UrnPropertiesReader;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
@@ -95,6 +96,7 @@ import com.google.common.base.Joiner;
 public class VnfAdapterVfModuleObjectMapper {
     @Autowired
     protected VnfAdapterObjectMapperUtils vnfAdapterObjectMapperUtils;
+
     private static final Logger logger = LoggerFactory.getLogger(VnfAdapterVfModuleObjectMapper.class);
     private static List<String> sdncResponseParamsToSkip =
             asList("vnf_id", "vf_module_id", "vnf_name", "vf_module_name");
@@ -114,6 +116,7 @@ public class VnfAdapterVfModuleObjectMapper {
     private static final String FLOATING_IP = "_floating_ip";
     private static final String FLOATING_V6_IP = "_floating_v6_ip";
     private static final String UNDERSCORE = "_";
+    private static final String ENABLE_BRIDGE = "mso.bridgeEnabled";
 
     @PostConstruct
     public void init() {
@@ -160,6 +163,11 @@ public class VnfAdapterVfModuleObjectMapper {
         createVfModuleRequest
                 .setNotificationUrl(vnfAdapterObjectMapperUtils.createCallbackUrl("VNFAResponse", messageId));
 
+        String enableBridge = getProperty(ENABLE_BRIDGE);
+        if (enableBridge == null || Boolean.valueOf(enableBridge)) {
+            createVfModuleRequest.setEnableBridge(true);
+        }
+
         return createVfModuleRequest;
     }
 
@@ -916,4 +924,8 @@ public class VnfAdapterVfModuleObjectMapper {
         }
         return baseVfModule;
     }
+
+    protected String getProperty(String key) {
+        return UrnPropertiesReader.getVariable(key);
+    }
 }
index 2e77023..a482da5 100644 (file)
@@ -150,7 +150,23 @@ public class VnfAdapterObjectMapperTest {
         CreateVolumeGroupRequest actualCreateVolumeGroupRequest =
                 vnfAdapterObjectMapper.createVolumeGroupRequestMapper(requestContext, cloudRegion, orchestrationContext,
                         serviceInstance, genericVnf, volumeGroup, sdncVfModuleQueryResponse);
+        assertThat(actualCreateVolumeGroupRequest, sameBeanAs(expectedCreateVolumeGroupRequest));
+
+        doReturn("false").when(vnfAdapterObjectMapper).getProperty("mso.bridgeEnabled");
+        actualCreateVolumeGroupRequest = vnfAdapterObjectMapper.createVolumeGroupRequestMapper(requestContext,
+                cloudRegion, orchestrationContext, serviceInstance, genericVnf, volumeGroup, sdncVfModuleQueryResponse);
+        assertThat(actualCreateVolumeGroupRequest, sameBeanAs(expectedCreateVolumeGroupRequest));
+
+        doReturn(null).when(vnfAdapterObjectMapper).getProperty("mso.bridgeEnabled");
+        expectedCreateVolumeGroupRequest.setEnableBridge(true);
+        actualCreateVolumeGroupRequest = vnfAdapterObjectMapper.createVolumeGroupRequestMapper(requestContext,
+                cloudRegion, orchestrationContext, serviceInstance, genericVnf, volumeGroup, sdncVfModuleQueryResponse);
+        assertThat(actualCreateVolumeGroupRequest, sameBeanAs(expectedCreateVolumeGroupRequest));
 
+        doReturn("true").when(vnfAdapterObjectMapper).getProperty("mso.bridgeEnabled");
+        expectedCreateVolumeGroupRequest.setEnableBridge(true);
+        actualCreateVolumeGroupRequest = vnfAdapterObjectMapper.createVolumeGroupRequestMapper(requestContext,
+                cloudRegion, orchestrationContext, serviceInstance, genericVnf, volumeGroup, sdncVfModuleQueryResponse);
         assertThat(actualCreateVolumeGroupRequest, sameBeanAs(expectedCreateVolumeGroupRequest));
     }
 
index 44a0813..836f8c1 100644 (file)
@@ -23,6 +23,7 @@ package org.onap.so.client.adapter.vnf.mapper;
 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -32,6 +33,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.mockito.Mockito;
 import org.onap.sdnc.northbound.client.model.GenericResourceApiVmNetworkData;
 import org.onap.so.adapters.vnfrest.CreateVfModuleRequest;
 import org.onap.so.adapters.vnfrest.DeleteVfModuleRequest;
@@ -46,6 +48,7 @@ import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf;
 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule;
 import org.onap.so.openstack.utils.MsoMulticloudUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.onap.so.client.adapter.vnf.mapper.exceptions.MissingValueTagException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -56,6 +59,9 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest {
     private VnfAdapterVfModuleObjectMapper vfModuleObjectMapper = new VnfAdapterVfModuleObjectMapper();
     private ObjectMapper omapper = new ObjectMapper();
 
+    @Autowired
+    protected VnfAdapterObjectMapperUtils vnfAdapterObjectMapperUtils;
+
     @Rule
     public ExpectedException expectedException = ExpectedException.none();
 
@@ -128,16 +134,35 @@ public class VnfAdapterVfModuleObjectMapperPayloadTest {
         String sdncVfModuleQueryResponse = new String(Files
                 .readAllBytes(Paths.get(JSON_FILE_LOCATION + "genericResourceApiVfModuleSdncVfModuleTopology.json")));
 
+        VnfAdapterVfModuleObjectMapper spyMapper = Mockito.spy(vfModuleObjectMapper);
+
+        doReturn("false").when(spyMapper).getProperty("mso.bridgeEnabled");
         CreateVfModuleRequest vfModuleVNFAdapterRequest =
-                vfModuleObjectMapper.createVfModuleRequestMapper(requestContext, cloudRegion, orchestrationContext,
+                spyMapper.createVfModuleRequestMapper(requestContext, cloudRegion, orchestrationContext,
                         serviceInstance, vnf, vfModule, null, sdncVnfQueryResponse, sdncVfModuleQueryResponse);
-
-
         String jsonToCompare =
                 new String(Files.readAllBytes(Paths.get(JSON_FILE_LOCATION + "vnfAdapterCreateVfModuleRequest.json")));
-
         CreateVfModuleRequest reqMapper1 = omapper.readValue(jsonToCompare, CreateVfModuleRequest.class);
+        assertThat(vfModuleVNFAdapterRequest, sameBeanAs(reqMapper1).ignoring("messageId").ignoring("notificationUrl"));
 
+
+        doReturn("true").when(spyMapper).getProperty("mso.bridgeEnabled");
+        vfModuleVNFAdapterRequest =
+                spyMapper.createVfModuleRequestMapper(requestContext, cloudRegion, orchestrationContext,
+                        serviceInstance, vnf, vfModule, null, sdncVnfQueryResponse, sdncVfModuleQueryResponse);
+        jsonToCompare = new String(Files
+                .readAllBytes(Paths.get(JSON_FILE_LOCATION + "vnfAdapterCreateVfModuleRequestBridgeEnabled.json")));
+        reqMapper1 = omapper.readValue(jsonToCompare, CreateVfModuleRequest.class);
+        assertThat(vfModuleVNFAdapterRequest, sameBeanAs(reqMapper1).ignoring("messageId").ignoring("notificationUrl"));
+
+
+        doReturn(null).when(spyMapper).getProperty("mso.bridgeEnabled");
+        vfModuleVNFAdapterRequest =
+                spyMapper.createVfModuleRequestMapper(requestContext, cloudRegion, orchestrationContext,
+                        serviceInstance, vnf, vfModule, null, sdncVnfQueryResponse, sdncVfModuleQueryResponse);
+        jsonToCompare = new String(Files
+                .readAllBytes(Paths.get(JSON_FILE_LOCATION + "vnfAdapterCreateVfModuleRequestBridgeEnabled.json")));
+        reqMapper1 = omapper.readValue(jsonToCompare, CreateVfModuleRequest.class);
         assertThat(vfModuleVNFAdapterRequest, sameBeanAs(reqMapper1).ignoring("messageId").ignoring("notificationUrl"));
     }
 
diff --git a/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestBridgeEnabled.json b/bpmn/so-bpmn-tasks/src/test/resources/__files/BuildingBlocks/VnfAndVfModuleMapper/vnfAdapterCreateVfModuleRequestBridgeEnabled.json
new file mode 100644 (file)
index 0000000..a02b1c9
--- /dev/null
@@ -0,0 +1,71 @@
+{
+       "cloudSiteId": "cloudRegionId",
+       "tenantId": "tenantId",
+       "vnfId": "vnfId",
+       "vnfType": "vnfType",
+       "vfModuleId": "vfModuleId",
+       "vfModuleName": "vfModuleName",
+       "vfModuleType": "vfModuleModelName",
+       "vnfVersion": "serviceModelVersion",
+       "modelCustomizationUuid": "vfModuleModelCustomizationUuid",
+       "skipAAI": true,
+       "backout": false,
+       "failIfExists": false,
+       "enableBridge": true,
+       "msoRequest": 
+       {
+               "requestId": "requestId",
+               "serviceInstanceId": "serviceInstanceId"
+       },
+
+       "vfModuleParams": 
+       {
+               "vnf_id": "vnfId",
+               "vnf_name": "vnfName",
+               "vf_module_id": "vfModuleId",
+               "vf_module_index": "1",
+               "vf_module_name": "vfModuleName",
+               "environment_context": "environmentContext",
+               "fw_0_subint_ctrl_port_0_ip": "ip0,ip1",
+               "fw_0_subint_ctrl_port_0_ip_0": "ip0",
+               "fw_0_subint_ctrl_port_0_ip_1": "ip1",
+               "fw_0_subint_ctrl_port_0_net_ids": "networkId0",
+               "fw_0_subint_ctrl_port_0_net_names": "1",
+               "fw_subint_ctrl_port_0_subintcount": "1",
+               "fw_0_subint_ctrl_port_0_v6_ip": "ip0,ip1",
+               "fw_0_subint_ctrl_port_0_v6_ip_0": "ip0",
+               "fw_0_subint_ctrl_port_0_v6_ip_1": "ip1",
+               "fw_0_subint_ctrl_port_0_vlan_ids": "1",
+               "fw_subint_ctrl_port_0_floating_ip": "floatingIpV40",
+               "fw_subint_ctrl_port_0_floating_v6_ip": "floatingIpV60",
+               "workload_context": "workloadContext",
+               "key1": "value2",
+               "key3": "value3",
+               "availability_zone_0": "zone0",
+               "availability_zone_1": "zone1",
+               "availability_zone_2": "zone2",
+               "vnfNetworkRole0_net_fqdn": "netFqdnValue0",
+               "vnfNetworkRole0_net_id": "neutronId0",
+               "vnfNetworkRole0_net_name": "netName0",
+               "vnfNetworkRole0_subnet_id": "subnetId0",
+               "vnfNetworkRole0_v6_subnet_id": "subnetId1",
+               "vmType0_name_0": "vmName0",
+               "vmType0_name_1": "vmName1",
+               "vmType0_names": "vmName0,vmName1",
+               "vmType0_vmNetworkRole0_floating_ip": "floatingIpV40",
+               "vmType0_vmNetworkRole0_floating_v6_ip": "floatingIpV60",
+               "vmType0_vmNetworkRole0_route_prefixes": "[{\"interface_route_table_routes_route_prefix\": \"interfaceRoutePrefix0\"},{\"interface_route_table_routes_route_prefix\": \"interfaceRoutePrefix1\"}]",
+               "vmNetworkRole0_ATT_VF_VLAN_FILTER": "heatVlanFilter0,heatVlanFilter1",
+               "vmType0_vmNetworkRole0_ip_0": "ip0",
+               "vmType0_vmNetworkRole0_ip_1": "ip1",
+               "vmType0_vmNetworkRole0_ips": "ip0,ip1",
+               "vmType0_vmNetworkRole0_v6_ip_0": "ip2",
+               "vmType0_vmNetworkRole0_v6_ip_1": "ip3",
+               "vmType0_vmNetworkRole0_v6_ips": "ip2,ip3",
+               "paramOne": "paramOneValue",
+               "paramTwo": "paramTwoValue",
+               "paramThree": "paramThreeValue",
+        "sdnc_directives": "{ \"attributes\": [ {\"attribute_name\": \"key1\", \"attribute_value\": \"value1\"}, {\"attribute_name\": \"fw_subint_ctrl_port_0_subintcount\", \"attribute_value\": \"1\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_floating_ip\", \"attribute_value\": \"floatingIpV40\"}, {\"attribute_name\": \"paramOne\", \"attribute_value\": \"paramOneValue\"}, {\"attribute_name\": \"vmType0_name_0\", \"attribute_value\": \"vmName0\"}, {\"attribute_name\": \"vnfNetworkRole0_v6_subnet_id\", \"attribute_value\": \"subnetId1\"}, {\"attribute_name\": \"vmType0_name_1\", \"attribute_value\": \"vmName1\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_ip_1\", \"attribute_value\": \"ip1\"}, {\"attribute_name\": \"vnfNetworkRole0_net_name\", \"attribute_value\": \"netName0\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_ip_0\", \"attribute_value\": \"ip0\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_vlan_ids\", \"attribute_value\": \"1\"}, {\"attribute_name\": \"vnfNetworkRole0_net_id\", \"attribute_value\": \"neutronId0\"}, {\"attribute_name\": \"availability_zone_0\", \"attribute_value\": \"zone0\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_v6_ip_1\", \"attribute_value\": \"ip3\"}, {\"attribute_name\": \"availability_zone_1\", \"attribute_value\": \"zone1\"}, {\"attribute_name\": \"fw_subint_ctrl_port_0_floating_v6_ip\", \"attribute_value\": \"floatingIpV60\"}, {\"attribute_name\": \"availability_zone_2\", \"attribute_value\": \"zone2\"}, {\"attribute_name\": \"vmType0_names\", \"attribute_value\": \"vmName0,vmName1\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_route_prefixes\", \"attribute_value\": \"[{\"interface_route_table_routes_route_prefix\": \"interfaceRoutePrefix0\"},{\"interface_route_table_routes_route_prefix\": \"interfaceRoutePrefix1\"}]\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_v6_ip_0\", \"attribute_value\": \"ip2\"}, {\"attribute_name\": \"vnfNetworkRole0_subnet_id\", \"attribute_value\": \"subnetId0\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_v6_ip_1\", \"attribute_value\": \"ip1\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_ip_1\", \"attribute_value\": \"ip1\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_ip_0\", \"attribute_value\": \"ip0\"}, {\"attribute_name\": \"vnfNetworkRole0_net_fqdn\", \"attribute_value\": \"netFqdnValue0\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_v6_ip_0\", \"attribute_value\": \"ip0\"}, {\"attribute_name\": \"vmNetworkRole0_ATT_VF_VLAN_FILTER\", \"attribute_value\": \"heatVlanFilter0,heatVlanFilter1\"}, {\"attribute_name\": \"paramTwo\", \"attribute_value\": \"paramTwoValue\"}, {\"attribute_name\": \"paramThree\", \"attribute_value\": \"paramThreeValue\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_v6_ips\", \"attribute_value\": \"ip2,ip3\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_floating_v6_ip\", \"attribute_value\": \"floatingIpV60\"}, {\"attribute_name\": \"vmType0_vmNetworkRole0_ips\", \"attribute_value\": \"ip0,ip1\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_ip\", \"attribute_value\": \"ip0,ip1\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_net_names\", \"attribute_value\": \"1\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_net_ids\", \"attribute_value\": \"networkId0\"}, {\"attribute_name\": \"fw_0_subint_ctrl_port_0_v6_ip\", \"attribute_value\": \"ip0,ip1\"}, {\"attribute_name\": \"fw_subint_ctrl_port_0_floating_ip\", \"attribute_value\": \"floatingIpV40\"}] }",
+        "user_directives": "{ \"attributes\": [ {\"attribute_name\": \"key1\", \"attribute_value\": \"value2\"}] }"
+       }
+}