Merge "Add blueprint resource definition enrichment."
authorDan Timoney <dtimoney@att.com>
Mon, 17 Dec 2018 20:49:19 +0000 (20:49 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 17 Dec 2018 20:49:19 +0000 (20:49 +0000)
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/policy/PropertyOperator.java
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/resource/model/NameGenRequest.java
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/resource/model/NameGenResponse.java
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/core/service/SpringServiceImpl.java
ms/neng/src/main/java/org/onap/ccsdk/apps/ms/neng/service/extinf/impl/PolicyFinderServiceImpl.java
ms/vlantag-api/src/main/java/org/onap/ccsdk/apps/ms/vlantagapi/core/extinf/pm/model/Elements.java
ms/vlantag-api/src/main/java/org/onap/ccsdk/apps/ms/vlantagapi/core/service/VlantagApiServiceImpl.java
ms/vlantag-api/src/test/java/org/onap/ccsdk/apps/ms/vlantagapi/core/extinf/pm/model/ElementsTest.java
ms/vlantag-api/src/test/java/org/onap/ccsdk/apps/ms/vlantagapi/core/service/TestVlantagApiServiceImpl.java
ms/vlantag-api/src/test/java/org/onap/ccsdk/apps/ms/vlantagapi/util/MockPolicyClient.java [new file with mode: 0644]

index 2a73a27..7ae27d2 100644 (file)
@@ -3,6 +3,7 @@
  * ONAP : CCSDK.apps
  * ================================================================================
  * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2018 IBM.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,11 +25,13 @@ import static org.onap.ccsdk.apps.ms.neng.core.policy.PolicyReader.propertyOpera
 
 import java.lang.reflect.Method;
 import java.util.Map;
+import java.util.logging.Logger;
 
 /**
  * Applies property operations while processing a policy.
  */
 public class PropertyOperator {
+    private static Logger logger = Logger.getLogger(PropertyOperator.class.getName());
     /**
      * Apply a property found in the policy.
      * 
@@ -117,7 +120,7 @@ public class PropertyOperator {
                 }
             }
         } catch (Exception e) {
-            e.printStackTrace();
+            logger.warning(e.getMessage());
             throw e;
         }
         return postOp;
index 9fa9141..e1006be 100644 (file)
@@ -3,6 +3,7 @@
  * ONAP : CCSDK.apps
  * ================================================================================
  * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2018 IBM.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,8 +31,8 @@ import java.util.Map;
 public class NameGenRequest implements Serializable {
     private static final long serialVersionUID = -8039686696076337053L;
 
-    List<Map<String, String>> elements;
-    Boolean useDb;
+    private List<Map<String, String>> elements;
+    private Boolean useDb;
 
     public List<Map<String, String>> getElements() {
         return elements;
index 35da40c..8ba9132 100644 (file)
@@ -31,7 +31,7 @@ import java.util.Map;
  */
 public class NameGenResponse implements Serializable {
     private static final long serialVersionUID = -8039686696076337053L;
-    private static List<Map<String, String>> elements;
+    private List<Map<String, String>> elements;
 
     public List<Map<String, String>> getElements() {
         return elements;
index c5cabe5..347a239 100644 (file)
@@ -135,7 +135,7 @@ public class SpringServiceImpl implements SpringService {
             if (e instanceof NengException) {
                 throw e;
             } else {
-                e.printStackTrace();
+                log.warning(e.getMessage());
                 throw new Exception("Internal error occurred while processing the request");
             }
         }
@@ -149,6 +149,7 @@ public class SpringServiceImpl implements SpringService {
         try {
             return policyDetailsRepository.findPolicyResponseByName(policyName);
         } catch (Exception e) {
+            log.warning(e.getMessage());
             return new PolicyDetails();
         }
     }
@@ -190,7 +191,7 @@ public class SpringServiceImpl implements SpringService {
             if (e instanceof NengException) {
                 throw e;
             } else {
-                e.printStackTrace();
+                log.warning(e.getMessage());
                 throw new Exception("Internal error occurred while processing the request");
             }
         }
index b30ac0e..ce7e3fd 100644 (file)
@@ -85,8 +85,7 @@ public class PolicyFinderServiceImpl implements PolicyFinder {
     GetConfigResponse getConfig(String policyName) throws Exception {
         GetConfigRequest getConfigRequest = new GetConfigRequest();
         getConfigRequest.setPolicyName(policyName);
-        GetConfigResponse getConfigResponse = makeOutboundCall(getConfigRequest, GetConfigResponse.class);
-        return getConfigResponse;
+        return (makeOutboundCall(getConfigRequest, GetConfigResponse.class));
     }
 
     <T, R> GetConfigResponse makeOutboundCall(T request, Class<R> response) throws Exception {
@@ -97,7 +96,8 @@ public class PolicyFinderServiceImpl implements PolicyFinder {
             ResponseEntity<Object> resp = getRestTemplate().exchange(re, Object.class);
             if (HttpStatus.OK.equals(resp.getStatusCode())) {
                 ObjectMapper objectmapper = new ObjectMapper();
-                System.out.println(objectmapper.writeValueAsString(resp.getBody()));
+                log.info(objectmapper.writeValueAsString(resp.getBody()));
+                //System.out.println(objectmapper.writeValueAsString(resp.getBody()));
                 List<Map<Object, Object>> respObj = objectmapper.readValue(
                                 objectmapper.writeValueAsString(resp.getBody()),
                                                 new TypeReference<List<Map<Object, Object>>>() {});
index 2060463..5ad8561 100644 (file)
@@ -40,6 +40,9 @@ public class Elements {
        @JsonProperty("allowed-range")\r
        private List<AllowedRanges> allowedRanges;\r
        \r
+       @JsonProperty("shared-range")\r
+    private String sharedRange;\r
+       \r
        @JsonProperty("element-vlan-role")\r
        String elementVlanRole;\r
        \r
@@ -76,7 +79,15 @@ public class Elements {
                this.allowedRanges = allowedRanges;\r
        }\r
 \r
-       public String getElementVlanRole() {\r
+       public String getSharedRange() {\r
+        return sharedRange;\r
+    }\r
+\r
+    public void setSharedRange(String sharedRange) {\r
+        this.sharedRange = sharedRange;\r
+    }\r
+\r
+    public String getElementVlanRole() {\r
                return elementVlanRole;\r
        }\r
 \r
@@ -84,12 +95,14 @@ public class Elements {
                this.elementVlanRole = elementVlanRole;\r
        }\r
 \r
-       @Override\r
-       public String toString() {\r
-               return "Elements [recycleVlantagRange=" + recycleVlantagRange + ", overwrite=" + overwrite + ", vlantagName="\r
-                               + vlantagName + ", allowedRanges=" + allowedRanges + ", elementVlanRole=" + elementVlanRole + "]";\r
-       }\r
+    @Override\r
+    public String toString() {\r
+        return "Elements [recycleVlantagRange=" + recycleVlantagRange + ", overwrite=" + overwrite + ", vlantagName="\r
+                + vlantagName + ", allowedRanges=" + allowedRanges + ", sharedRange=" + sharedRange\r
+                + ", elementVlanRole=" + elementVlanRole + "]";\r
+    }\r
 \r
+       \r
 \r
        \r
        \r
index 358241e..93f8a21 100644 (file)
@@ -165,6 +165,8 @@ public class VlantagApiServiceImpl implements VlantagApiService {
                rr.applicationId = "SDNC";\r
                rr.rangeMaxOverride = -1;\r
                rr.rangeMinOverride = -1;\r
+               if("TRUE".equalsIgnoreCase(element.getSharedRange()))\r
+                   rr.resourceShareGroup = input.getScopeId();\r
 \r
                List<Range> rangeList = new ArrayList<>();\r
                for (AllowedRanges allowedRange : element.getAllowedRanges()) {\r
index 6d534ff..c531adf 100644 (file)
@@ -48,6 +48,12 @@ public class ElementsTest {
                elements.setElementVlanRole("elementVlanRole");
                assertEquals("elementVlanRole", elements.getElementVlanRole());
        }
+       
+       @Test
+    public void testGetSetSharedRange() {
+        elements.setSharedRange("TRUE");
+        assertEquals("TRUE", elements.getSharedRange());
+    }
 
        @Test
        public void testToString() {
index 18aa302..b731b6a 100644 (file)
@@ -35,7 +35,6 @@ import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.ccsdk.apps.ms.vlantagapi.core.exception.VlantagApiException;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.AllowedRanges;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.Elements;\r
-import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.PolicyEngineResponse;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.ResourceModel;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.AssignVlanTagRequest;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.AssignVlanTagRequestInput;\r
@@ -45,7 +44,7 @@ import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagRequest;
 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagRequestInput;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagResponse;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.core.service.VlantagApiServiceImpl;\r
-import org.onap.ccsdk.apps.ms.vlantagapi.extinf.pm.PolicyManagerClient;\r
+import org.onap.ccsdk.apps.ms.vlantagapi.util.MockPolicyClient;\r
 import org.onap.ccsdk.apps.ms.vlantagapi.util.MockResourceAllocator;\r
 import org.onap.ccsdk.sli.adaptors.ra.comp.ResourceResponse;\r
 import org.onap.ccsdk.sli.adaptors.util.str.StrUtil;\r
@@ -62,11 +61,11 @@ private static final Logger log = LoggerFactory.getLogger(TestVlantagApiServiceI
        @InjectMocks\r
        VlantagApiServiceImpl serviceSpy;\r
        \r
-       @Spy\r
-       private PolicyManagerClient policyEngineSpy;\r
-       \r
        @Spy\r
        protected static MockResourceAllocator mockRA2;\r
+       \r
+       @Spy \r
+       protected static MockPolicyClient policyClient; \r
 \r
        \r
        @Rule\r
@@ -75,13 +74,6 @@ private static final Logger log = LoggerFactory.getLogger(TestVlantagApiServiceI
        @Before\r
        public void setup() throws Exception {\r
                service = new VlantagApiServiceImpl();\r
-\r
-               PolicyEngineResponse peResponse = new PolicyEngineResponse();\r
-               peResponse.setConfig("{\"riskLevel\":\"4\",\"riskType\":\"test\",\"policyName\":\"Internet_VlanTag_1810_US_VPE\",\"service\":\"vlantagResourceModel\",\"guard\":\"False\",\"description\":\"Internet_VlanTag_1810_US_VPE\",\"templateVersion\":\"1607\",\"priority\":\"4\",\"version\":\"20180709\",\"content\":{\"policy-instance-name\":\"Internet_VlanTag_1810_US_VPE\",\"resource-models\":[{\"data-store\":\"FALSE\",\"elements\":[{\"allowed-range\":[{\"min\":\"3553\",\"max\":\"3562\"}],\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Cust\"}],\"scope\":\"SITE\",\"vlan-type\":\"vlan-id-outer\",\"resource-resolution-recipe\":\"#BSB# VPE-Cust #ESB#\",\"resource-vlan-role\":\"outer-tag\"},{\"data-store\":\"TRUE\",\"elements\":[{\"allowed-range\":[{\"min\":\"3503\",\"max\":\"3503\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Cust-Outer\"},{\"allowed-range\":[{\"min\":\"4001\",\"max\":\"4012\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Core1\"},{\"allowed-range\":[{\"min\":\"4001\",\"max\":\"4012\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Core2\"}],\"scope\":\"SITE\",\"vlan-type\":\"vlan-id-filter\",\"resource-resolution-recipe\":\"#BSB# VPE-Cust-Outer, VPE-Core1, VPE-Core2 #ESB#\"}]}}");\r
-               PolicyEngineResponse[] peResponses = new PolicyEngineResponse[1];\r
-               peResponses[0] = peResponse;\r
-\r
-               Mockito.doReturn(peResponses).when(policyEngineSpy).getConfigUsingPost(any());\r
        }\r
        \r
        @Test\r
@@ -120,6 +112,26 @@ private static final Logger log = LoggerFactory.getLogger(TestVlantagApiServiceI
                StrUtil.info(log, response);\r
        }\r
        \r
+       @Test(expected = Test.None.class /* no exception expected */)\r
+    public void test_assign_sucess_002() throws Exception {\r
+        \r
+        AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
+        input.setPolicyInstanceName("some-policy-instance");\r
+        input.setVlanType("vlan-id-filter");\r
+        input.setScopeId("some-scope-id");\r
+        input.setVlanTagKey("some-key");\r
+        \r
+        AssignVlanTagRequest request = new AssignVlanTagRequest();\r
+        List<AssignVlanTagRequestInput> inputs = new ArrayList<>();\r
+        inputs.add(input);\r
+        request.setInput(inputs);\r
+        \r
+        //PowerMockito.doReturn(mockStatus.Success).when(mockRA).reserve(any(), any(), any(), any());       \r
+        AssignVlanTagResponse response = serviceSpy.assignVlanTag(request);\r
+        \r
+        StrUtil.info(log, response);\r
+    }\r
+       \r
        @Test(expected = Test.None.class /* no exception expected */)\r
        public void test_unassign_sucess_001() throws Exception {\r
                \r
@@ -943,7 +955,7 @@ private static final Logger log = LoggerFactory.getLogger(TestVlantagApiServiceI
        \r
           @Test(expected = VlantagApiException.class)\r
            public void testGetPolicyFromPDPFailure() throws Exception {\r
-               Mockito.doThrow(new VlantagApiException()).when(policyEngineSpy).getConfigUsingPost(any());\r
-               policyEngineSpy.getPolicyFromPDP("sonme_random_policy_name");\r
+               Mockito.doThrow(new VlantagApiException()).when(policyClient).getConfigUsingPost(any());\r
+               policyClient.getPolicyFromPDP("sonme_random_policy_name");\r
            }\r
 }\r
diff --git a/ms/vlantag-api/src/test/java/org/onap/ccsdk/apps/ms/vlantagapi/util/MockPolicyClient.java b/ms/vlantag-api/src/test/java/org/onap/ccsdk/apps/ms/vlantagapi/util/MockPolicyClient.java
new file mode 100644 (file)
index 0000000..bd95b2f
--- /dev/null
@@ -0,0 +1,40 @@
+/*******************************************************************************\r
+ * Copyright © 2017-2018 AT&T Intellectual Property.\r
+ * \r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ ******************************************************************************/\r
+\r
+package org.onap.ccsdk.apps.ms.vlantagapi.util;\r
+\r
+import org.onap.ccsdk.apps.ms.vlantagapi.core.exception.VlantagApiException;\r
+import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.PolicyEngineResponse;\r
+import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.RequestObject;\r
+import org.onap.ccsdk.apps.ms.vlantagapi.extinf.pm.PolicyManagerClient;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+public class MockPolicyClient extends PolicyManagerClient{\r
+       protected static final Logger logger = LoggerFactory.getLogger(MockPolicyClient.class);\r
+\r
+    \r
+    \r
+    public PolicyEngineResponse[] getConfigUsingPost(RequestObject requestObject) throws VlantagApiException {\r
+        \r
+        PolicyEngineResponse peResponse = new PolicyEngineResponse();\r
+        peResponse.setConfig("{\"riskLevel\":\"4\",\"riskType\":\"test\",\"policyName\":\"Internet_VlanTag_1810_US_VPE\",\"service\":\"vlantagResourceModel\",\"guard\":\"False\",\"description\":\"Internet_VlanTag_1810_US_VPE\",\"templateVersion\":\"1607\",\"priority\":\"4\",\"version\":\"20180709\",\"content\":{\"policy-instance-name\":\"Internet_VlanTag_1810_US_VPE\",\"resource-models\":[{\"data-store\":\"FALSE\",\"elements\":[{\"allowed-range\":[{\"min\":\"3553\",\"max\":\"3562\"}],\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Cust\"}],\"scope\":\"SITE\",\"vlan-type\":\"vlan-id-outer\",\"resource-resolution-recipe\":\"#BSB# VPE-Cust #ESB#\",\"resource-vlan-role\":\"outer-tag\"},{\"data-store\":\"TRUE\",\"elements\":[{\"allowed-range\":[{\"min\":\"3503\",\"max\":\"3503\"}],\"shared-range\":\"TRUE\",\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Cust-Outer\"},{\"allowed-range\":[{\"min\":\"4001\",\"max\":\"4012\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Core1\"},{\"allowed-range\":[{\"min\":\"4001\",\"max\":\"4012\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Core2\"}],\"scope\":\"SITE\",\"vlan-type\":\"vlan-id-filter\",\"resource-resolution-recipe\":\"#BSB# VPE-Cust-Outer, VPE-Core1, VPE-Core2 #ESB#\"}]}}");\r
+        PolicyEngineResponse[] peResponses = new PolicyEngineResponse[1];\r
+        peResponses[0] = peResponse;\r
+        \r
+        return peResponses;\r
+    }\r
+}\r