* 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.
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.
*
}
}
} catch (Exception e) {
- e.printStackTrace();
+ logger.warning(e.getMessage());
throw e;
}
return postOp;
* 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.
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;
*/
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;
if (e instanceof NengException) {
throw e;
} else {
- e.printStackTrace();
+ log.warning(e.getMessage());
throw new Exception("Internal error occurred while processing the request");
}
}
try {
return policyDetailsRepository.findPolicyResponseByName(policyName);
} catch (Exception e) {
+ log.warning(e.getMessage());
return new PolicyDetails();
}
}
if (e instanceof NengException) {
throw e;
} else {
- e.printStackTrace();
+ log.warning(e.getMessage());
throw new Exception("Internal error occurred while processing the request");
}
}
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 {
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>>>() {});
@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
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
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
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
elements.setElementVlanRole("elementVlanRole");
assertEquals("elementVlanRole", elements.getElementVlanRole());
}
+
+ @Test
+ public void testGetSetSharedRange() {
+ elements.setSharedRange("TRUE");
+ assertEquals("TRUE", elements.getSharedRange());
+ }
@Test
public void testToString() {
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
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
@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
@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
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
\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
--- /dev/null
+/*******************************************************************************\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