summaryrefslogtreecommitdiffstats
path: root/resource-assignment/provider/src/test/java/jtest
diff options
context:
space:
mode:
Diffstat (limited to 'resource-assignment/provider/src/test/java/jtest')
-rw-r--r--resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/DataSetup.java261
-rw-r--r--resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestIsAvailable.java424
-rw-r--r--resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestQuery.java85
-rw-r--r--resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestRelease.java430
-rw-r--r--resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve.java681
-rw-r--r--resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve2.java77
-rw-r--r--resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/rm/DataSetup.java106
-rw-r--r--resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestDb.java37
-rw-r--r--resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestTable.java84
9 files changed, 2185 insertions, 0 deletions
diff --git a/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/DataSetup.java b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/DataSetup.java
new file mode 100644
index 000000000..f74eeee5f
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/DataSetup.java
@@ -0,0 +1,261 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.org.openecomp.sdnc.ra;
+
+import java.util.Date;
+
+import jtest.util.org.openecomp.sdnc.ra.TestDb;
+import jtest.util.org.openecomp.sdnc.ra.TestTable;
+
+public class DataSetup {
+
+ private TestDb testDb;
+
+ private TestTable vpePool = null;
+ private TestTable vplspePool = null;
+ private TestTable pserver = null;
+ private TestTable serviceResource = null;
+ private TestTable resource = null;
+ private TestTable allocationItem = null;
+
+ private static final String[] VPE_POOL_COLUMNS = {
+ "vpe_name", "ipv4_oam_address", "loopback0_ipv4_address", "provisioning_status", "aic_site_id",
+ "availability_zone", "vlan_id_outer", "vendor", "physical_intf_name", "physical_intf_speed",
+ "physical_intf_units", "vpe_uuid", "vpe_id", "image_filename" };
+
+ private static final String[] VPLSPE_POOL_COLUMNS = {
+ "vplspe_name", "aic_site_id", "availability_zone", "physical_intf_name", "physical_intf_speed",
+ "physical_intf_units", "loopback0_ipv4_address", "vlan_id_outer", "vplspe_uuid", "image_filename",
+ "provisioning_status", "vendor" };
+
+ private static final String[] PSERVER_COLUMNS = {
+ "hostname", "ptnii_equip_name", "number_of_cpus", "disk_in_gigabytes", "ram_in_megabytes", "equip_type",
+ "equip_vendor", "equip_model", "fqdn", "pserver_selflink", "ipv4_oam_address", "serial_number",
+ "pserver_id", "internet_topology", "aic_site_id", "in_maint", "pserver_name2", "purpose" };
+
+ private static final String[] SERVICE_RESOURCE_COLUMNS = {
+ "service_instance_id", "service_status", "service_change_number", "resource_set_id", "resource_union_id" };
+
+ private static final String[] RESOURCE_COLUMNS = { "asset_id", "resource_name", "resource_type", "lt_used" };
+
+ private static final String[] ALLOCATION_ITEM_COLUMNS = {
+ "resource_id", "application_id", "resource_set_id", "resource_union_id", "resource_share_group_list",
+ "lt_used", "allocation_time" };
+
+ private void initTables() {
+ if (vpePool == null)
+ vpePool = testDb.table("VPE_POOL", "vpe_name", VPE_POOL_COLUMNS);
+ if (vplspePool == null)
+ vplspePool = testDb.table("VPLSPE_POOL", "vplspe_name", VPLSPE_POOL_COLUMNS);
+ if (pserver == null)
+ pserver = testDb.table("PSERVER", "hostname", PSERVER_COLUMNS);
+ if (serviceResource == null)
+ serviceResource = testDb.table("SERVICE_RESOURCE", "service_resource_id", SERVICE_RESOURCE_COLUMNS);
+ if (resource == null)
+ resource = testDb.table("RESOURCE", "resource_id", RESOURCE_COLUMNS);
+ if (allocationItem == null)
+ allocationItem = testDb.table("ALLOCATION_ITEM", "allocation_item_id", ALLOCATION_ITEM_COLUMNS);
+ }
+
+ public void cleanup() {
+ initTables();
+ vpePool.delete("true");
+ vplspePool.delete("true");
+ pserver.delete("true");
+ serviceResource.delete("true");
+ allocationItem.delete("true");
+ resource.delete("true");
+ }
+
+ public void setupVpePort(
+ String aicSiteId,
+ String vpeId,
+ String interfaceName,
+ String provStatus,
+ String imageFileName) {
+ initTables();
+ vpePool.add(vpeId, "127.0.0.1", "107.134.152.139", provStatus, aicSiteId, "mtanj-esx-az01", "3501",
+ "JUNIPER", interfaceName, "1", "GBPS", "vpe002", "VPESAT-auttx200me6", imageFileName);
+ }
+
+ public void setupVplspePort(
+ String aicSiteId,
+ String vplspeId,
+ String interfaceName,
+ String provStatus,
+ String imageFileName) {
+ initTables();
+ vplspePool.add(vplspeId, aicSiteId, "mtanj-esx-az01", interfaceName, "100", "GBPS", "192.168.119.32", "3501",
+ "vpls002", imageFileName, provStatus, "JUNIPER");
+ }
+
+ public void setupPserver(String hostname, String aicSiteId) {
+ initTables();
+ pserver.add(hostname, hostname + "srv1", 4, 1000, 16000, "equip_type", "equip_vendor", "equip_model", "fqdn",
+ "pserver_selflink", "123.123.123.123", "serial_number", "pserver_id", "internet_topology", aicSiteId,
+ "N", hostname, "purpose");
+ }
+
+ public void setupService(
+ String serviceInstanceId,
+ String status,
+ int changeNumber,
+ long speedKbps,
+ String vpeId,
+ String vplspeId,
+ String serverId) {
+ initTables();
+
+ String resourceSetId = serviceInstanceId + "/" + changeNumber;
+ String resourceUnionId = serviceInstanceId;
+
+ serviceResource.add(serviceInstanceId, status, changeNumber, resourceSetId, resourceUnionId);
+
+ Long rid = resource.getId("asset_id = '" + vpeId + "/ae0' AND resource_name = 'Bandwidth'");
+ if (rid == null) {
+ resource.add(vpeId + "/ae0", "Bandwidth", "Limit", 1);
+ rid = resource.getLastId();
+ }
+ allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, speedKbps, new Date());
+
+ rid = resource.getId("asset_id = '" + vplspeId + "' AND resource_name = 'Bandwidth'");
+ if (rid == null) {
+ resource.add(vplspeId, "Bandwidth", "Limit", 1);
+ rid = resource.getLastId();
+ }
+ allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, speedKbps, new Date());
+
+ rid = resource.getId("asset_id = '" + serverId + "' AND resource_name = 'Bandwidth'");
+ if (rid == null) {
+ resource.add(serverId, "Bandwidth", "Limit", 1);
+ rid = resource.getLastId();
+ }
+ allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, speedKbps, new Date());
+
+ rid = resource.getId("asset_id = '" + serverId + "' AND resource_name = 'Connection'");
+ if (rid == null) {
+ resource.add(serverId, "Connection", "Limit", 1);
+ rid = resource.getLastId();
+ }
+ allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, 1, new Date());
+ }
+
+ public boolean serviceNotInDb(String serviceInstanceId, String status, Integer changeNumber) {
+ String where = "service_instance_id = '" + serviceInstanceId + "'";
+ if (status != null)
+ where += " AND service_status = '" + status + "'";
+ if (changeNumber != null)
+ where += " AND service_change_number = " + changeNumber;
+
+ if (serviceResource.exists(where))
+ return false;
+
+ where = "resource_union_id = '" + serviceInstanceId + "'";
+ if (changeNumber != null)
+ where += " AND resource_set_id = '" + serviceInstanceId + "/" + changeNumber + "'";
+
+ if (allocationItem.exists(where))
+ return false;
+
+ return true;
+ }
+
+ public boolean serviceCorrectInDb(String serviceInstanceId, String status, int changeNumber, long speedKbps) {
+ String where = "service_instance_id = '" + serviceInstanceId + "' AND service_status = '" + status +
+ "' AND service_change_number = " + changeNumber;
+ if (!serviceResource.exists(where))
+ return false;
+
+ where = "resource_union_id = '" + serviceInstanceId + "' AND resource_set_id = '" + serviceInstanceId + "/" +
+ changeNumber + "' AND lt_used = " + speedKbps;
+ if (!allocationItem.exists(where))
+ return false;
+
+ return true;
+ }
+
+ public boolean serviceCorrectInDb(
+ String vpeId,
+ String aicSiteId,
+ String serviceInstanceId,
+ String status,
+ int changeNumber,
+ long speedKbps) {
+
+ String where = "service_instance_id = '" + serviceInstanceId + "' AND service_status = '" + status +
+ "' AND service_change_number = " + changeNumber;
+ if (!serviceResource.exists(where))
+ return false;
+
+ Long vpebwrid = resource.getId("asset_id = '" + vpeId + "/ae0' AND resource_name = 'Bandwidth'");
+ if (vpebwrid == null)
+ return false;
+
+ where = "resource_id = " + vpebwrid + " AND resource_union_id = '" + serviceInstanceId +
+ "' AND resource_set_id = '" + serviceInstanceId + "/" + changeNumber + "' AND lt_used = " + speedKbps;
+ if (!allocationItem.exists(where))
+ return false;
+
+ Long srvbwrid = resource.getId("asset_id = '" + aicSiteId + "/Server1' AND resource_name = 'Bandwidth'");
+ if (srvbwrid == null)
+ return false;
+
+ where = "resource_id = " + srvbwrid + " AND resource_union_id = '" + serviceInstanceId +
+ "' AND resource_set_id = '" + serviceInstanceId + "/" + changeNumber + "' AND lt_used = " + speedKbps;
+ if (!allocationItem.exists(where))
+ return false;
+
+ Long srvconrid = resource.getId("asset_id = '" + aicSiteId + "/Server1' AND resource_name = 'Connection'");
+ if (srvconrid == null)
+ return false;
+
+ where = "resource_id = " + srvconrid + " AND resource_union_id = '" + serviceInstanceId +
+ "' AND resource_set_id = '" + serviceInstanceId + "/" + changeNumber + "' AND lt_used = 1";
+ if (!allocationItem.exists(where))
+ return false;
+
+ return true;
+ }
+
+ public boolean serviceCorrectInDb(
+ String serviceInstanceId,
+ String endPointPosition,
+ String status,
+ int changeNumber,
+ long speedKbps) {
+ String where = "service_instance_id = '" + serviceInstanceId + "' AND service_status = '" + status +
+ "' AND service_change_number = " + changeNumber;
+ if (!serviceResource.exists(where))
+ return false;
+
+ where = "resource_union_id = '" + serviceInstanceId + "/" + endPointPosition + "' AND resource_set_id = '" +
+ serviceInstanceId + "/" + endPointPosition + "/" + changeNumber + "' AND lt_used = " + speedKbps;
+ if (!allocationItem.exists(where))
+ return false;
+
+ return true;
+ }
+
+ public void setTestDb(TestDb testDb) {
+ this.testDb = testDb;
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestIsAvailable.java b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestIsAvailable.java
new file mode 100644
index 000000000..7d57eba31
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestIsAvailable.java
@@ -0,0 +1,424 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.org.openecomp.sdnc.ra;
+
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
+import org.openecomp.sdnc.ra.ResourceAllocator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "classpath:test-context.xml" })
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestIsAvailable {
+
+ private static final Logger log = LoggerFactory.getLogger(TestIsAvailable.class);
+
+ @Autowired(required = true)
+ private ResourceAllocator resourceAllocator;
+
+ @Autowired(required = true)
+ private DataSetup dataSetup;
+
+ @Test
+ public void test001() throws Exception {
+ String t = "001";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test successful response - all resources available");
+
+ String service1 = "isAvailable" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test002() throws Exception {
+ String t = "002";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test capacity not found - request very big number that is above the limits");
+
+ String service1 = "isAvailable" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Gbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ String maxAvailableSpeed = ctx.getAttribute("tmp.resource-allocator-output.max-available-speed");
+ String speedUnit = ctx.getAttribute("tmp.resource-allocator-output.speed-unit");
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " + maxAvailableSpeed);
+ log.info(" tmp.resource-allocator-output.speed-unit: " + speedUnit);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(maxAvailableSpeed.equals("960000"));
+ Assert.assertTrue(speedUnit.equals("kbps"));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test003() throws Exception {
+ String t = "003";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test capacity not found - PROV check for VPE");
+
+ String service1 = "isAvailable" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "---", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ String maxAvailableSpeed = ctx.getAttribute("tmp.resource-allocator-output.max-available-speed");
+ String speedUnit = ctx.getAttribute("tmp.resource-allocator-output.speed-unit");
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " + maxAvailableSpeed);
+ log.info(" tmp.resource-allocator-output.speed-unit: " + speedUnit);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(maxAvailableSpeed.equals("0"));
+ Assert.assertTrue(speedUnit.equals("kbps"));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test004() throws Exception {
+ String t = "004";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test capacity not found - PROV check for VPLSPE");
+
+ String service1 = "isAvailable" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "---", null);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ String maxAvailableSpeed = ctx.getAttribute("tmp.resource-allocator-output.max-available-speed");
+ String speedUnit = ctx.getAttribute("tmp.resource-allocator-output.speed-unit");
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " + maxAvailableSpeed);
+ log.info(" tmp.resource-allocator-output.speed-unit: " + speedUnit);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(maxAvailableSpeed.equals("0"));
+ Assert.assertTrue(speedUnit.equals("kbps"));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test005() throws Exception {
+ String t = "005";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test capacity not found - VPE not found in DB");
+
+ String service1 = "isAvailable" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ String maxAvailableSpeed = ctx.getAttribute("tmp.resource-allocator-output.max-available-speed");
+ String speedUnit = ctx.getAttribute("tmp.resource-allocator-output.speed-unit");
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " + maxAvailableSpeed);
+ log.info(" tmp.resource-allocator-output.speed-unit: " + speedUnit);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(maxAvailableSpeed.equals("0"));
+ Assert.assertTrue(speedUnit.equals("kbps"));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test006() throws Exception {
+ String t = "006";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test capacity not found - VPLSPE not found in DB");
+
+ String service1 = "isAvailable" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ String maxAvailableSpeed = ctx.getAttribute("tmp.resource-allocator-output.max-available-speed");
+ String speedUnit = ctx.getAttribute("tmp.resource-allocator-output.speed-unit");
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " + maxAvailableSpeed);
+ log.info(" tmp.resource-allocator-output.speed-unit: " + speedUnit);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(maxAvailableSpeed.equals("0"));
+ Assert.assertTrue(speedUnit.equals("kbps"));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test007() throws Exception {
+ String t = "007";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test capacity not found - test max available speed calculation");
+
+ String service1 = "isAvailable" + t + "/service1";
+ String existingService1 = "isAvailable" + t + "/existing-service1";
+ String existingService2 = "isAvailable" + t + "/existing-service2";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv127", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(existingService1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1",
+ "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(existingService2, "Active", 3, 100000, "mtanjrsv127", "mtsnj303vr1",
+ "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(existingService2, "Pending", 4, 500000, "mtanjrsv127", "mtsnj303vr1",
+ "MTSNJA4LCP1/Server1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Gbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ String maxAvailableSpeed = ctx.getAttribute("tmp.resource-allocator-output.max-available-speed");
+ String speedUnit = ctx.getAttribute("tmp.resource-allocator-output.speed-unit");
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " + maxAvailableSpeed);
+ log.info(" tmp.resource-allocator-output.speed-unit: " + speedUnit);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(maxAvailableSpeed.equals("260000"));
+ Assert.assertTrue(speedUnit.equals("kbps"));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test008() throws Exception {
+ String t = "008";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test capacity not found - test server limit depending on number of connections");
+
+ String service1 = "isAvailable" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv127", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ for (int i = 1; i <= 13; i++)
+ dataSetup.setupService("isAvailable" + t + "/existing-service" + i, "Active", 2, 20000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Gbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ String maxAvailableSpeed = ctx.getAttribute("tmp.resource-allocator-output.max-available-speed");
+ String speedUnit = ctx.getAttribute("tmp.resource-allocator-output.speed-unit");
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " + maxAvailableSpeed);
+ log.info(" tmp.resource-allocator-output.speed-unit: " + speedUnit);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(maxAvailableSpeed.equals("340000"));
+ Assert.assertTrue(speedUnit.equals("kbps"));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test009() throws Exception {
+ String t = "009";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test successful response - no service instance id in input - all resources available");
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ }
+
+ @Test
+ public void test010() throws Exception {
+ String t = "010";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test input validations - no aic-site-id in input");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Gbps");
+
+ try {
+ resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals(
+ "tmp.resource-allocator.aic-site-id is required in ResourceAllocator"));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+
+ @Test
+ public void test011() throws Exception {
+ String t = "011";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test input validations - no speed in input");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Gbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ try {
+ resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals("tmp.resource-allocator.speed is required in ResourceAllocator"));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+
+ @Test
+ public void test012() throws Exception {
+ String t = "012";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test input validations - speed not a number in input");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.speed", "nnnnn");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Gbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ try {
+ resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals("Invalid tmp.resource-allocator.speed. Must be a number."));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+
+ @Test
+ public void test013() throws Exception {
+ String t = "013";
+ log.info("============== isAvailable " + t + " ================================");
+ log.info("=== Test input validations - speed-unit missing in input");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ try {
+ resourceAllocator.isAvailable("NetworkCapacity", null, null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals(
+ "tmp.resource-allocator.speed-unit is required in ResourceAllocator"));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestQuery.java b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestQuery.java
new file mode 100644
index 000000000..e69003a39
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestQuery.java
@@ -0,0 +1,85 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.org.openecomp.sdnc.ra;
+
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
+import org.openecomp.sdnc.ra.ResourceAllocator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "classpath:test-context.xml" })
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestQuery {
+
+ private static final Logger log = LoggerFactory.getLogger(TestQuery.class);
+
+ @Autowired(required = true)
+ private ResourceAllocator resourceAllocator;
+
+ @Autowired(required = true)
+ private DataSetup dataSetup;
+
+ @Test
+ public void test001() throws Exception {
+ String t = "001";
+ log.info("============== query " + t + " ================================");
+ log.info("=== Test reading assigned resources (subinterface-id, vlan-id-inner)");
+
+ String service1 = "ICOREPVC" + t + "-1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-model", "L3AVPN-EVC");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+ ctx.setAttribute("tmp.resource-allocator.vpn-id", "123");
+ ctx.setAttribute("tmp.resource-allocator.vrf-required", "false");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "VPE-Cust", "Pending", 1, 300000));
+
+ st = resourceAllocator.query("NetworkCapacity", true, null, service1, "end-point", null, ctx);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertEquals(ctx.getAttribute("end-point.subinterface-id"), "100");
+ Assert.assertEquals(ctx.getAttribute("end-point.vlan-id-inner"), "2");
+ Assert.assertEquals(ctx.getAttribute("end-point.vpe-name"), "mtanjrsv126");
+ Assert.assertEquals(ctx.getAttribute("end-point.affinity-link"), "1");
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestRelease.java b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestRelease.java
new file mode 100644
index 000000000..f2ee50fc5
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestRelease.java
@@ -0,0 +1,430 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.org.openecomp.sdnc.ra;
+
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
+import org.openecomp.sdnc.ra.ResourceAllocator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "classpath:test-context.xml" })
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestRelease {
+
+ private static final Logger log = LoggerFactory.getLogger(TestRelease.class);
+
+ @Autowired(required = true)
+ private ResourceAllocator resourceAllocator;
+
+ @Autowired(required = true)
+ private DataSetup dataSetup;
+
+ @Test
+ public void test001() throws Exception {
+ String t = "001";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - cancel - new start");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Pending", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Pending", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Cancel");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test002() throws Exception {
+ String t = "002";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - cancel - change");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(service1, "Pending", 3, 400000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Pending", 3, 400000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Cancel");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 3));
+ }
+
+ @Test
+ public void test003() throws Exception {
+ String t = "003";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - cancel - active there, but no pending - should do nothing and return success");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Cancel");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+ }
+
+ @Test
+ public void test004() throws Exception {
+ String t = "004";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - cancel - nothing in DB - should return success");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Cancel");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test005() throws Exception {
+ String t = "005";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - activate - new start");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Pending", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Pending", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Activate");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+ }
+
+ @Test
+ public void test006() throws Exception {
+ String t = "006";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - actovate - change");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(service1, "Pending", 3, 400000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Pending", 3, 400000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Activate");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 3, 400000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 2));
+ }
+
+ @Test
+ public void test007() throws Exception {
+ String t = "007";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - activate - active there, but no pending - should do nothing and return success");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Activate");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+ }
+
+ @Test
+ public void test008() throws Exception {
+ String t = "008";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - activate - nothing in DB - should return success");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Activate");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test009() throws Exception {
+ String t = "009";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - disconnect - only pending in DB");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Pending", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Pending", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Disconnect");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test010() throws Exception {
+ String t = "010";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - disconnect - only active in DB");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Disconnect");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test011() throws Exception {
+ String t = "011";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - disconnect - both active and pending in DB");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(service1, "Pending", 3, 400000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "Pending", 3, 400000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Disconnect");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test012() throws Exception {
+ String t = "012";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test release - disconnect - nothing in DB - should return success");
+
+ String service1 = "release" + t + "/service1";
+
+ dataSetup.cleanup();
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Disconnect");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ QueryStatus st = resourceAllocator.release("NetworkCapacity", null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test013() throws Exception {
+ String t = "013";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test input validations - request-type missing in input");
+
+ String service1 = "release" + t + "/service1";
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ try {
+ resourceAllocator.release("NetworkCapacity", null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals(
+ "tmp.resource-allocator.request-type is required in ResourceAllocator"));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+
+ @Test
+ public void test014() throws Exception {
+ String t = "014";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test input validations - invalid request-type in input");
+
+ String service1 = "release" + t + "/service1";
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "xxxxx");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+
+ try {
+ resourceAllocator.release("NetworkCapacity", null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals(
+ "Invalid tmp.resource-allocator.request-type: xxxxx. Supported values are Cancel, Activate, Disconnect."));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+
+ @Test
+ public void test015() throws Exception {
+ String t = "015";
+ log.info("============== release " + t + " ================================");
+ log.info("=== Test input validations - missing service-instance-id in input");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Cancel");
+
+ try {
+ resourceAllocator.release("NetworkCapacity", null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals(
+ "tmp.resource-allocator.service-instance-id is required in ResourceAllocator"));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve.java b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve.java
new file mode 100644
index 000000000..08c673587
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve.java
@@ -0,0 +1,681 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.org.openecomp.sdnc.ra;
+
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
+import org.openecomp.sdnc.ra.ResourceAllocator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "classpath:test-context.xml" })
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestReserve {
+
+ private static final Logger log = LoggerFactory.getLogger(TestReserve.class);
+
+ @Autowired(required = true)
+ private ResourceAllocator resourceAllocator;
+
+ @Autowired(required = true)
+ private DataSetup dataSetup;
+
+ @Test
+ public void test001() throws Exception {
+ String t = "001";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test successful response - new start - all resources available");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupPserver("server1", "MTSNJA4LCP1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 1, 300000));
+ }
+
+ @Test
+ public void test002() throws Exception {
+ String t = "002";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test successful response - new start supp - all resources available");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Pending", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ // ctx.setAttribute("tmp.resource-allocator.request-type", "New"); - Default is New
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "400");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 400000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 2));
+ }
+
+ @Test
+ public void test003() throws Exception {
+ String t = "003";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test successful response - change - all resources available");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "400");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 400000));
+ }
+
+ @Test
+ public void test004() throws Exception {
+ String t = "004";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test successful response - change supp - all resources available");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(service1, "Pending", 3, 400000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 400000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "500");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 4, 500000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 3));
+ }
+
+ @Test
+ public void test005() throws Exception {
+ String t = "005";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test successful response - change - check that hard limits are applied, not soft for change");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "1200000");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "kbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 1200000));
+ }
+
+ @Test
+ public void test006() throws Exception {
+ String t = "006";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test capacity not found - new start");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Gbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test007() throws Exception {
+ String t = "007";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test capacity not found - new start supp");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Pending", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "2000");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 3));
+ }
+
+ @Test
+ public void test008() throws Exception {
+ String t = "008";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test capacity not found - change");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "2000");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 3));
+ }
+
+ @Test
+ public void test009() throws Exception {
+ String t = "009";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test capacity not found - change supp");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupService(service1, "Active", 2, 200000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(service1, "Pending", 3, 400000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 400000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "2000");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 200000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 400000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 4));
+ }
+
+ @Test
+ public void test010() throws Exception {
+ String t = "010";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test border condition - connection limit - new start - adding connection " +
+ "when we are on the limit should fail");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ for (int i = 1; i <= 40; i++)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Active", 2, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ for (int i = 1; i <= 40; i += 4)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Pending", 3, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "1");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+
+ @Test
+ public void test011() throws Exception {
+ String t = "011";
+ log.info("============== reserve " + t + " ================================");
+ log.info(
+ "=== Test border condition - connection limit - new start supp should succeed as no new connection being added");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ for (int i = 1; i <= 39; i++)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Active", 2, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ for (int i = 1; i <= 39; i += 4)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Pending", 3, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ dataSetup.setupService(service1, "Pending", 2, 1000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 2, 1000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "5");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 5000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 2));
+ }
+
+ @Test
+ public void test012() throws Exception {
+ String t = "012";
+ log.info("============== reserve " + t + " ================================");
+ log.info(
+ "=== Test border condition - connection limit - change should succeed as no new connection being added");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ for (int i = 1; i <= 39; i++)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Active", 2, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ for (int i = 1; i <= 39; i += 4)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Pending", 3, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ dataSetup.setupService(service1, "Active", 2, 1000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 1000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "5");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 1000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 5000));
+ }
+
+ @Test
+ public void test013() throws Exception {
+ String t = "013";
+ log.info("============== reserve " + t + " ================================");
+ log.info(
+ "=== Test border condition - connection limit - change supp should succeed as no new connection being added");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ for (int i = 1; i <= 39; i++)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Active", 2, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ for (int i = 1; i <= 39; i += 4)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Pending", 3, 1000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ dataSetup.setupService(service1, "Active", 2, 1000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+ dataSetup.setupService(service1, "Pending", 3, 5000, "mtanjrsv126", "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 1000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 3, 5000));
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "Change");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "10");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Active", 2, 1000));
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 4, 10000));
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, 3));
+ }
+
+ @Test
+ public void test014() throws Exception {
+ String t = "014";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test input validations - invalid request-type in input");
+
+ String service1 = "reserve" + t + "/service1";
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "xxxxx");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "10");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ try {
+ resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+ } catch (SvcLogicException e) {
+ Assert.assertTrue(e.getMessage().equals(
+ "Invalid tmp.resource-allocator.request-type: xxxxx. Supported values are New, Change."));
+ return;
+ }
+ Assert.fail("SvcLogicException expected");
+ }
+
+ @Test
+ public void test015() throws Exception {
+ String t = "015";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test server bw limit depends on number of servers - limit is 960Mbps for 1 server, 1920 for 2");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupPserver("server1", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server2", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server3", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server4", "MTSNJA4LCP1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "1200");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 1, 1200000));
+ }
+
+ @Test
+ public void test016() throws Exception {
+ String t = "016";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test resource threshold output");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupPserver("server1", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server2", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server3", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server4", "MTSNJA4LCP1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "1605");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ for (String key : ctx.getAttributeKeySet())
+ if (key.startsWith("tmp.resource-allocator-output"))
+ log.info(" " + key + ": " + ctx.getAttribute(key));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 1, 1605000));
+ }
+
+ @Test
+ public void test017() throws Exception {
+ String t = "017";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test if evc_count lookup in MAX_SERVER_SPEED depends on the number of primary servers.");
+ log.info("=== For 10 existing EVC, it should take the first row, not the second (see data.sql).");
+ log.info("=== Applied limit should be 1920Mbps, not 1680Mbps.");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupPserver("server1", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server2", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server3", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server4", "MTSNJA4LCP1");
+
+ for (int i = 1; i <= 10; i++)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Active", 2, 100000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "800"); // 10*100Mbps existing + 800 = 1800
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb("mtanjrsv126", "MTSNJA4LCP1", service1, "Pending", 1, 800000));
+ }
+
+ @Test
+ public void test018() throws Exception {
+ String t = "018";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test if evc_count lookup in MAX_SERVER_SPEED depends on the number of primary servers.");
+ log.info("=== For 11 existing EVC, it should take the second row (see data.sql).");
+ log.info("=== Applied limit should be 1680Mbps. We have 11*100 + 700, so this should fail.");
+
+ String service1 = "reserve" + t + "/service1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+ dataSetup.setupVplspePort("MTSNJA4LCP1", "mtsnj303vr1", "xe-0/0/2", "PROV", null);
+ dataSetup.setupPserver("server1", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server2", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server3", "MTSNJA4LCP1");
+ dataSetup.setupPserver("server4", "MTSNJA4LCP1");
+
+ for (int i = 1; i <= 11; i++)
+ dataSetup.setupService("reserve" + t + "/existing-service" + i, "Active", 2, 100000, "mtanjrsv126",
+ "mtsnj303vr1", "MTSNJA4LCP1/Server1");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "700"); // 11*100Mbps existing + 700 = 1800
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ log.info("Result: " + st);
+ log.info(" tmp.resource-allocator-output.max-available-speed: " +
+ ctx.getAttribute("tmp.resource-allocator-output.max-available-speed"));
+ log.info(" tmp.resource-allocator-output.speed-unit: " +
+ ctx.getAttribute("tmp.resource-allocator-output.speed-unit"));
+
+ log.info("Result: " + st);
+
+ Assert.assertTrue(st == QueryStatus.NOT_FOUND);
+ Assert.assertTrue(dataSetup.serviceNotInDb(service1, null, null));
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve2.java b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve2.java
new file mode 100644
index 000000000..a92cbc5aa
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/ra/TestReserve2.java
@@ -0,0 +1,77 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.org.openecomp.sdnc.ra;
+
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
+import org.openecomp.sdnc.ra.ResourceAllocator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = { "classpath:test-context.xml" })
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class TestReserve2 {
+
+ private static final Logger log = LoggerFactory.getLogger(TestReserve2.class);
+
+ @Autowired(required = true)
+ private ResourceAllocator resourceAllocator;
+
+ @Autowired(required = true)
+ private DataSetup dataSetup;
+
+ @Test
+ public void test001() throws Exception {
+ String t = "001";
+ log.info("============== reserve " + t + " ================================");
+ log.info("=== Test successful response - new start - all resources available");
+
+ String service1 = "ICOREPVC" + t + "-1";
+
+ dataSetup.cleanup();
+ dataSetup.setupVpePort("MTSNJA4LCP1", "mtanjrsv126", "ae0", "PROV", "juniper-vpe-image");
+
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("tmp.resource-allocator.request-type", "New");
+ ctx.setAttribute("tmp.resource-allocator.service-model", "L3AVPN-EVC");
+ ctx.setAttribute("tmp.resource-allocator.service-instance-id", service1);
+ ctx.setAttribute("tmp.resource-allocator.speed", "300");
+ ctx.setAttribute("tmp.resource-allocator.speed-unit", "Mbps");
+ ctx.setAttribute("tmp.resource-allocator.aic-site-id", "MTSNJA4LCP1");
+ ctx.setAttribute("tmp.resource-allocator.vpn-id", "123");
+ ctx.setAttribute("tmp.resource-allocator.vrf-required", "false");
+
+ QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+ Assert.assertTrue(st == QueryStatus.SUCCESS);
+ Assert.assertTrue(dataSetup.serviceCorrectInDb(service1, "VPE-Cust", "Pending", 1, 300000));
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/rm/DataSetup.java b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/rm/DataSetup.java
new file mode 100644
index 000000000..55824b00c
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/org/openecomp/sdnc/rm/DataSetup.java
@@ -0,0 +1,106 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.org.openecomp.sdnc.rm;
+
+import java.util.Date;
+
+import jtest.util.org.openecomp.sdnc.ra.TestDb;
+import jtest.util.org.openecomp.sdnc.ra.TestTable;
+
+public class DataSetup {
+
+ private TestDb testDb;
+
+ private TestTable resource = null;
+ private TestTable allocationItem = null;
+
+ private static final String[] RESOURCE_COLUMNS =
+ { "asset_id", "resource_name", "resource_type", "lt_used", "ll_label", "ll_reference_count", "rr_used" };
+
+ private static final String[] ALLOCATION_ITEM_COLUMNS = {
+ "resource_id", "application_id", "resource_set_id", "resource_union_id", "resource_share_group_list",
+ "lt_used", "ll_label", "rr_used", "allocation_time" };
+
+ private void initTables() {
+ if (resource == null)
+ resource = testDb.table("RESOURCE", "resource_id", RESOURCE_COLUMNS);
+ if (allocationItem == null)
+ allocationItem = testDb.table("ALLOCATION_ITEM", "allocation_item_id", ALLOCATION_ITEM_COLUMNS);
+ }
+
+ public void cleanup() {
+ allocationItem.delete("true");
+ resource.delete("true");
+ }
+
+ public void setupLimitItem(
+ String resourceName,
+ String assetId,
+ String resourceSetId,
+ String resourceUnionId,
+ long used) {
+ initTables();
+
+ Long rid = resource.getId("asset_id = '" + assetId + "' AND resource_name = '" + resourceName + "'");
+ if (rid == null) {
+ resource.add(assetId, resourceName, "Limit", 1, null, null, null);
+ rid = resource.getLastId();
+ }
+ allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, used, null, null, new Date());
+ }
+
+ public void setupRangeItem(
+ String resourceName,
+ String assetId,
+ String resourceSetId,
+ String resourceUnionId,
+ String used) {
+ initTables();
+
+ Long rid = resource.getId("asset_id = '" + assetId + "' AND resource_name = '" + resourceName + "'");
+ if (rid == null) {
+ resource.add(assetId, resourceName, "Range", null, null, null, used);
+ rid = resource.getLastId();
+ }
+ allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, null, null, used, new Date());
+ }
+
+ public void setupLabelItem(
+ String resourceName,
+ String assetId,
+ String resourceSetId,
+ String resourceUnionId,
+ String label) {
+ initTables();
+
+ Long rid = resource.getId("asset_id = '" + assetId + "' AND resource_name = '" + resourceName + "'");
+ if (rid == null) {
+ resource.add(assetId, resourceName, "Label", null, label, 1, null);
+ rid = resource.getLastId();
+ }
+ allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, null, label, null, new Date());
+ }
+
+ public void setTestDb(TestDb testDb) {
+ this.testDb = testDb;
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestDb.java b/resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestDb.java
new file mode 100644
index 000000000..ec7c2abfe
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestDb.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.util.org.openecomp.sdnc.ra;
+
+import org.springframework.jdbc.core.JdbcTemplate;
+
+public class TestDb {
+
+ private JdbcTemplate jdbcTemplate;
+
+ public TestTable table(String tableName, String idName, String... columnList) {
+ return new TestTable(jdbcTemplate, tableName, idName, columnList);
+ }
+
+ public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
+ this.jdbcTemplate = jdbcTemplate;
+ }
+}
diff --git a/resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestTable.java b/resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestTable.java
new file mode 100644
index 000000000..64288d96a
--- /dev/null
+++ b/resource-assignment/provider/src/test/java/jtest/util/org/openecomp/sdnc/ra/TestTable.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 ONAP 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 jtest.util.org.openecomp.sdnc.ra;
+
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.support.rowset.SqlRowSet;
+
+public class TestTable {
+
+ private String tableName;
+ private String[] columnList;
+ private String idName;
+
+ private String insertSql;
+
+ private JdbcTemplate jdbcTemplate;
+
+ public TestTable(JdbcTemplate jdbcTemplate, String tableName, String idName, String... columnList) {
+ this.jdbcTemplate = jdbcTemplate;
+ this.tableName = tableName;
+ this.idName = idName;
+ this.columnList = columnList;
+ createInsertSql();
+ }
+
+ private void createInsertSql() {
+ StringBuilder ss = new StringBuilder();
+ ss.append("INSERT INTO ").append(tableName).append(" (");
+ for (String s : columnList)
+ ss.append(s).append(", ");
+ ss.setLength(ss.length() - 2);
+ ss.append(") VALUES (");
+ for (int i = 0; i < columnList.length; i++)
+ ss.append("?, ");
+ ss.setLength(ss.length() - 2);
+ ss.append(")");
+ insertSql = ss.toString();
+ }
+
+ public void add(Object... values) {
+ jdbcTemplate.update(insertSql, values);
+ }
+
+ public long getLastId() {
+ return jdbcTemplate.queryForObject("SELECT max(" + idName + ") FROM " + tableName, Long.class);
+ }
+
+ public Long getId(String where) {
+ String selectSql = "SELECT " + idName + " FROM " + tableName + " WHERE " + where;
+ SqlRowSet rs = jdbcTemplate.queryForRowSet(selectSql);
+ if (rs.first())
+ return rs.getLong(idName);
+ return null;
+ }
+
+ public boolean exists(String where) {
+ String selectSql = "SELECT * FROM " + tableName + " WHERE " + where;
+ SqlRowSet rs = jdbcTemplate.queryForRowSet(selectSql);
+ return rs.first();
+ }
+
+ public void delete(String where) {
+ jdbcTemplate.update("DELETE FROM " + tableName + " WHERE " + where);
+ }
+}