RA: Add capability to assign new numbers for range 83/57883/1
authorStan Bonev <sb5356@att.com>
Fri, 27 Jul 2018 15:49:50 +0000 (11:49 -0400)
committerStan Bonev <sb5356@att.com>
Fri, 27 Jul 2018 15:49:50 +0000 (11:49 -0400)
Change-Id: Ibb11219bfe0362055d388a4a10dab81e95979892
Issue-ID: CCSDK-408
Signed-off-by: Stan Bonev <sb5356@att.com>
resource-assignment/provider/src/main/java/org/onap/ccsdk/sli/adaptors/ra/ResourceAllocator.java
resource-assignment/provider/src/main/java/org/onap/ccsdk/sli/adaptors/ra/alloc/DbAllocationRule.java
resource-assignment/provider/src/main/java/org/onap/ccsdk/sli/adaptors/ra/comp/ResourceRequest.java
resource-assignment/provider/src/main/java/org/onap/ccsdk/sli/adaptors/rm/comp/AllocationFunction.java
resource-assignment/provider/src/main/java/org/onap/ccsdk/sli/adaptors/rm/data/RangeAllocationRequest.java
resource-assignment/provider/src/main/java/org/onap/ccsdk/sli/adaptors/rm/util/RangeUtil.java
resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/DataSetup.java
resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/ra/TestReserve.java
resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/rm/DataSetup.java [deleted file]

index 426fd28..0e4b925 100644 (file)
@@ -60,7 +60,7 @@ public class ResourceAllocator implements SvcLogicResource {
     @Override
     public QueryStatus notify(String resource, String action, String key, SvcLogicContext ctx)
             throws SvcLogicException {
-        return (QueryStatus.SUCCESS);
+        return QueryStatus.SUCCESS;
     }
 
     @Override
@@ -351,6 +351,8 @@ public class ResourceAllocator implements SvcLogicResource {
         rr.rangeMinOverride = Integer.parseInt(rangeMinOverrideStr);
         String rangeMaxOverrideStr = getParam(ctx, "range-max-override", false, "-1");
         rr.rangeMaxOverride = Integer.parseInt(rangeMaxOverrideStr);
+        String rangeForceNewNumbersStr = getParam(ctx, "range-force-new-numbers", false, "false");
+        rr.rangeForceNewNumbers = Boolean.parseBoolean(rangeForceNewNumbersStr);
         String replaceStr = getParam(ctx, "replace", false, "true");
         rr.replace = Boolean.parseBoolean(replaceStr);
         rr.applicationId = getParam(ctx, "application-id", false, "SDNC");
index af6a280..b13ef80 100644 (file)
@@ -178,6 +178,7 @@ public class DbAllocationRule implements AllocationRule {
                 ar.rangeList.get(ar.rangeList.size() - 1).max = resourceRequest.rangeMaxOverride;
             }
         }
+        ar.forceNewNumbers = resourceRequest.rangeForceNewNumbers;
         return ar;
     }
 
index b5c24fa..a52ce38 100644 (file)
@@ -30,6 +30,7 @@ public class ResourceRequest {
     public boolean rangeReverseOrder;
     public int rangeMinOverride;
     public int rangeMaxOverride;
+    public boolean rangeForceNewNumbers;
     public boolean replace;
     public String requestType;
     public String serviceModel;
index 9cae5fe..70092db 100644 (file)
@@ -267,7 +267,7 @@ class AllocationFunction extends SynchronizedFunction {
 
                 // First try to reuse the numbers already taken by the same resource union
                 SortedSet<Integer> uu = RangeUtil.getUsed(rr, req.resourceUnionId);
-                if (uu != null && !uu.isEmpty() && req.replace) {
+                if (uu != null && !uu.isEmpty() && req.replace && !req.forceNewNumbers) {
                     if (uu.size() >= req.requestedCount) {
                         // Just take the first req.requestedCount numbers from uu
                         Iterator<Integer> i = uu.iterator();
index d87469f..7b60d36 100644 (file)
@@ -35,4 +35,5 @@ public class RangeAllocationRequest extends AllocationRequest {
     public int requestedCount = 1;
     public boolean sequential = false;
     public boolean reverseOrder = false;
+    public boolean forceNewNumbers = false;
 }
index 4685233..fdc8a2b 100644 (file)
@@ -76,15 +76,19 @@ public class RangeUtil {
                             found = true;
                             break;
                         }
+                        if (req.forceNewNumbers && rai.used.contains(num)) {
+                            found = true;
+                            break;
+                        }
                     }
                 }
-                
+
                 if (!found) {
                     good = true;
                     break;
                 }
             }
-            
+
             return good;
         }
 
index bba8e2b..e7b855d 100644 (file)
@@ -21,6 +21,7 @@
 
 package jtest.org.onap.ccsdk.sli.adaptors.ra;
 
+import java.util.Date;
 import jtest.util.org.onap.ccsdk.sli.adaptors.ra.TestDb;
 import jtest.util.org.onap.ccsdk.sli.adaptors.ra.TestTable;
 
@@ -31,10 +32,11 @@ public class DataSetup {
     private TestTable resource = null;
     private TestTable allocationItem = null;
 
-    private static final String[] RESOURCE_COLUMNS = {"asset_id", "resource_name", "resource_type", "lt_used"};
+    private static final String[] RESOURCE_COLUMNS =
+        {"asset_id", "resource_name", "resource_type", "lt_used", "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", "allocation_time"};
+            "resource_union_id", "resource_share_group_list", "lt_used", "rr_used", "allocation_time"};
 
     private void initTables() {
         if (resource == null) {
@@ -51,6 +53,37 @@ public class DataSetup {
         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", used, null);
+            rid = resource.getLastId();
+        }
+        allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, used, 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, used);
+            rid = resource.getLastId();
+        }
+        allocationItem.add(rid, "SDNC", resourceSetId, resourceUnionId, null, null, used, new Date());
+    }
+
+    public boolean checkRangeItem(String resourceName, String assetId, String resourceSetId, String used) {
+        String where = "resource_id = (SELECT resource_id FROM RESOURCE WHERE resource_name = '" + resourceName
+                + "' AND asset_id = '" + assetId + "') AND resource_set_id = '" + resourceSetId + "'";
+        Object usedInDb = allocationItem.getColumn("rr_used", where);
+        return used.equals(usedInDb);
+    }
+
     public void setTestDb(TestDb testDb) {
         this.testDb = testDb;
     }
index c420075..cdd95dc 100644 (file)
@@ -240,398 +240,475 @@ public class TestReserve {
         });
 
     }
-    
-    
+
+
+    @Test
+    public void test003() throws Exception {
+        String t = "003";
+        log.info("============== reserve " + t + " ================================");
+        log.info("=== Test successful response - new start - all resources available");
+
+        ResourceEntity sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VNF";
+
+        ResourceTarget rt = new ResourceTarget();
+        rt.resourceTargetId = "MDTWNJ21A5";
+        rt.resourceTargetType = "Site";
+
+
+        ResourceRequest rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        rr.resourceName = "VPE-Cust";
+        // rr.requestType = "New";
+        // rr.rangeMaxOverride = 5;
+        // rr.rangeMinOverride = 5;
+
+        List<ResourceResponse> rsList = new ArrayList<>();
+        resourceAllocator.reserve(sd, rt, rr, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+        log.info("========================  Query + t ==============================");
+        rsList = new ArrayList<>();
+        resourceAllocator.query(sd, null, rr, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+    }
+
+
+
+    @Test
+    public void test004() throws Exception {
+        String t = "004";
+        log.info("============== reserve " + t + " ================================");
+        log.info("=== Test successful response - new start - all resources available");
+
+        ResourceEntity sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VNF";
+
+        ResourceTarget rt = new ResourceTarget();
+        rt.resourceTargetId = "MDTWNJ21A5";
+        rt.resourceTargetType = "Site";
+
+        List<ResourceRequest> rrs = new ArrayList<>();
+        ResourceRequest rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        rr.resourceName = "VPE-Cust";
+        rrs.add(rr);
+
+        rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        rr.resourceName = "VPE-Core1";
+        rrs.add(rr);
+
+        rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        rr.resourceName = "VPE-Core2";
+        rrs.add(rr);
+
+
+
+        List<ResourceResponse> rsList = new ArrayList<>();
+        // resourceAllocator.reserve(sd, rt, rrs, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+        log.info("========================  Query + t ==============================");
+        rsList = new ArrayList<>();
+        resourceAllocator.query(sd, null, rr, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+    }
+
+
+    @Test
+    public void test005() throws Exception {
+        String t = "005";
+        log.info("============== reserve " + t + " ================================");
+        log.info("=== Test successful response - new start - all resources available");
+
+        // String service1 = "reserve" + t + "/service1";
+
+        dataSetup.cleanup();
+
+        TestTable resource = new TestTable(jdbcTemplate, "RESOURCE", "resource_id", RESOURCE_COLUMNS);
+        TestTable allocationItem =
+                new TestTable(jdbcTemplate, "ALLOCATION_ITEM", "allocation_item_id", ALLOCATION_ITEM_COLUMNS);
+
+
+        SvcLogicContext ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
+        ctx.setAttribute("ra-input.check-only", "false");
+        ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Cust");
+        ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
+
+        ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
+        ctx.setAttribute("ra-input.reservation-target-type", "Site");
+
+        ctx.setAttribute("ra-input.resource-name", "cust-vlan-id");
+
+
+        QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+
+        resource.print();
+        allocationItem.print();
+
+        ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
+        ctx.setAttribute("ra-input.check-only", "false");
+        ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Core1");
+        ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
+
+        ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
+        ctx.setAttribute("ra-input.reservation-target-type", "Site");
+
+        ctx.setAttribute("ra-input.resource-name", "vlan-id-inner");
+
+
+        st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+
+        resource.print();
+        allocationItem.print();
+
+        ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
+        ctx.setAttribute("ra-input.check-only", "false");
+        ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Core2");
+        ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
+
+        ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
+        ctx.setAttribute("ra-input.reservation-target-type", "Site");
+
+        ctx.setAttribute("ra-input.resource-name", "vlan-id-inner");
+        ctx.setAttribute("ra-input.replace", "false");
+
+
+        st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+
+        resource.print();
+        allocationItem.print();
+
+
+        /* Query Using ReservationEntityId using ServiceLogicContext */
+        ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
+        ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
+        ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Core1");
+
+
+        st = resourceAllocator.query("NetworkCapacity", false, null, null, null, null, ctx);
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+
+
+        /* Query Using ReservationTargetId using ServiceLogicContext */
+        ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
+        ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
+        ctx.setAttribute("ra-input.reservation-target-type", "Site");
+        ctx.setAttribute("ra-input.resource-name", "vlan-id-inner");
+
+        st = resourceAllocator.query("NetworkCapacity", false, null, null, null, null, ctx);
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+
+        log.info("========================  Query Using ResourceEntity==============================");
+        /* Query Using ResourceEntity bean */
+        ResourceEntity sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VPE-Core1";
+
+
+        ResourceRequest rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL-1";
+        rr.resourceName = "vlan-id-inner";
+        rr.requestType = "New";
+        rr.rangeMaxOverride = -1;
+        rr.rangeMinOverride = -1;
+
+        List<ResourceResponse> rsList = new ArrayList<>();
+        resourceAllocator.query(sd, null, null, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+        /*
+         * log.info("========================  release Using ResourceEntity==============================");
+         * rsList = new ArrayList<ResourceResponse>(); AllocationStatus status =
+         * resourceAllocator.release(sd); Assert.assertTrue(status == AllocationStatus.Success);
+         *
+         *
+         * log.info("========================  Query Using ResourceEntity==============================");
+         * rsList = new ArrayList<ResourceResponse>(); resourceAllocator.query(sd, null, null, rsList);
+         *
+         *
+         * rsList.forEach(r -> { StrUtil.info(log, r); });
+         */
+
+    }
+
+
+
     @Test
-       public void test003() throws Exception {
-               String t = "003";
-               log.info("============== reserve " + t + " ================================");
-               log.info("=== Test successful response - new start - all resources available");
-               
-               ResourceEntity sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VNF";
-               
-               ResourceTarget rt = new ResourceTarget();
-               rt.resourceTargetId = "MDTWNJ21A5";
-               rt.resourceTargetType = "Site";
-
-               
-               ResourceRequest rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               rr.resourceName = "VPE-Cust";
-               //rr.requestType = "New";
-               //rr.rangeMaxOverride = 5;
-               //rr.rangeMinOverride = 5;
-               
-               List <ResourceResponse> rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.reserve(sd, rt, rr, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-               
-               log.info("========================  Query + t ==============================");
-               rsList = new ArrayList<org.onap.ccsdk.sli.adaptors.ra.comp.ResourceResponse>();
-               resourceAllocator.query(sd, null, rr, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-
-       }
-       
-       
-       
-       
-       @Test
-       public void test004() throws Exception {
-               String t = "004";
-               log.info("============== reserve " + t + " ================================");
-               log.info("=== Test successful response - new start - all resources available");
-               
-               ResourceEntity sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VNF";
-               
-               ResourceTarget rt = new ResourceTarget();
-               rt.resourceTargetId = "MDTWNJ21A5";
-               rt.resourceTargetType = "Site";
-
-               List<ResourceRequest> rrs = new ArrayList<ResourceRequest>();
-               ResourceRequest rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               rr.resourceName = "VPE-Cust";
-               rrs.add(rr);
-               
-               rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               rr.resourceName = "VPE-Core1";
-               rrs.add(rr);
-               
-               rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               rr.resourceName = "VPE-Core2";
-               rrs.add(rr);
-               
-               
-               
-               List <ResourceResponse> rsList = new ArrayList<ResourceResponse>();
-               //resourceAllocator.reserve(sd, rt, rrs, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-               
-               log.info("========================  Query + t ==============================");
-               rsList = new ArrayList<org.onap.ccsdk.sli.adaptors.ra.comp.ResourceResponse>();
-               resourceAllocator.query(sd, null, rr, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-
-       }
-       
-       
-       @Test
-       public void test005() throws Exception {
-               String t = "005";
-               log.info("============== reserve " + t + " ================================");
-               log.info("=== Test successful response - new start - all resources available");
-
-               //String service1 = "reserve" + t + "/service1";
-
-               dataSetup.cleanup();
-               
-               TestTable resource = new TestTable(jdbcTemplate, "RESOURCE", "resource_id", RESOURCE_COLUMNS);
-               TestTable allocationItem = new TestTable(jdbcTemplate, "ALLOCATION_ITEM", "allocation_item_id",
-                               ALLOCATION_ITEM_COLUMNS);
-               
-               
-               SvcLogicContext ctx = new SvcLogicContext();
-               ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
-               ctx.setAttribute("ra-input.check-only", "false");
-               ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Cust");
-               ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
-
-               ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
-               ctx.setAttribute("ra-input.reservation-target-type", "Site");
-               
-               ctx.setAttribute("ra-input.resource-name", "cust-vlan-id");
-
-               
-               QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
-               
-               Assert.assertTrue(st == QueryStatus.SUCCESS);
-               
-               resource.print();
-               allocationItem.print();
-               
-               ctx = new SvcLogicContext();
-               ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
-               ctx.setAttribute("ra-input.check-only", "false");
-               ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Core1");
-               ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
-
-               ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
-               ctx.setAttribute("ra-input.reservation-target-type", "Site");
-               
-               ctx.setAttribute("ra-input.resource-name", "vlan-id-inner");
-
-               
-               st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
-               
-               Assert.assertTrue(st == QueryStatus.SUCCESS);
-               
-               resource.print();
-               allocationItem.print();
-               
-               ctx = new SvcLogicContext();
-               ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
-               ctx.setAttribute("ra-input.check-only", "false");
-               ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Core2");
-               ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
-
-               ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
-               ctx.setAttribute("ra-input.reservation-target-type", "Site");
-               
-               ctx.setAttribute("ra-input.resource-name", "vlan-id-inner");
-               ctx.setAttribute("ra-input.replace", "false");
-
-               
-               st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
-               
-               Assert.assertTrue(st == QueryStatus.SUCCESS);
-               
-               resource.print();
-               allocationItem.print();
-               
-               
-               /*Query Using ReservationEntityId using ServiceLogicContext*/
-               ctx = new SvcLogicContext();
-               ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
-               ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
-               ctx.setAttribute("ra-input.reservation-entity-type", "VPE-Core1");
-
-               
-               st = resourceAllocator.query("NetworkCapacity", false, null, null, null, null, ctx);
-               Assert.assertTrue(st == QueryStatus.SUCCESS);
-
-               
-               /*Query Using ReservationTargetId using ServiceLogicContext*/
-               ctx = new SvcLogicContext();
-               ctx.setAttribute("ra-input.service-model", "MY-SERV-MODEL-1");
-               ctx.setAttribute("ra-input.reservation-target-id", "MDTWNJ21A5");
-               ctx.setAttribute("ra-input.reservation-target-type", "Site");
-               ctx.setAttribute("ra-input.resource-name", "vlan-id-inner");
-               
-               st = resourceAllocator.query("NetworkCapacity", false, null, null, null, null, ctx);
-               Assert.assertTrue(st == QueryStatus.SUCCESS);
-               
-               log.info("========================  Query Using ResourceEntity==============================");
-               /*Query Using ResourceEntity bean*/
-               ResourceEntity sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VPE-Core1";
-
-               
-               ResourceRequest rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL-1";
-               rr.resourceName = "vlan-id-inner";
-               rr.requestType = "New";
-               rr.rangeMaxOverride = -1;
-               rr.rangeMinOverride = -1;
-               
-               List <ResourceResponse> rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.query(sd, null, null, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-               
-               /*log.info("========================  release Using ResourceEntity==============================");
-               rsList = new ArrayList<ResourceResponse>();
-               AllocationStatus status = resourceAllocator.release(sd);
-               Assert.assertTrue(status == AllocationStatus.Success);
-               
-               
-               log.info("========================  Query Using ResourceEntity==============================");
-               rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.query(sd, null, null, rsList);
-               
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });*/
-               
-       }
-       
-       
-       
-       @Test
-       public void test006() throws Exception {
-               String t = "006";
-               log.info("============== reserve " + t + " ================================");
-               log.info("=== Test successful response - new start - all resources available");
-               
-               ResourceEntity sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VPE-Cust";
-               
-               ResourceTarget rt = new ResourceTarget();
-               rt.resourceTargetId = "MDTWNJ21A5";
-               rt.resourceTargetType = "Site";
-
-
-               ResourceRequest rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL-1";
-               rr.resourceName = "cust-vlan-id";
-       
-               
-               List <ResourceResponse> rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.reserve(sd, rt, rr, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-               
-               log.info("========================  Query + t ==============================");
-               rsList = new ArrayList<org.onap.ccsdk.sli.adaptors.ra.comp.ResourceResponse>();
-               resourceAllocator.query(sd, null, rr, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-
-       }
-       
-       @Test
-       public void test007() throws Exception {
-               String t = "007";
-               log.info("============== reserve " + t + " ================================");
-               log.info("=== Test successful response - new start - all resources available");
-               
-               dataSetup.cleanup();
-               
-               TestTable resource = new TestTable(jdbcTemplate, "RESOURCE", "resource_id", RESOURCE_COLUMNS);
-               TestTable allocationItem = new TestTable(jdbcTemplate, "ALLOCATION_ITEM", "allocation_item_id",
-                               ALLOCATION_ITEM_COLUMNS);
-               
-               
-               ResourceEntity sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VPE";
-               sd.resourceEntityVersion = "1";
-               
-               ResourceTarget rt = new ResourceTarget();
-               rt.resourceTargetId = "MDTWNJ21A5";
-               rt.resourceTargetType = "Site";
-
-
-               ResourceRequest rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               //rr.resourceName = "vlan-id-outer";
-               rr.endPointPosition="VPE-Cust";
-               rr.rangeMaxOverride = -1;
-               rr.rangeMinOverride = -1;
-       
-               
-               List <ResourceResponse> rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.reserve(sd, rt, rr, rsList);
-               
-               //VPE-Core1
-               sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VPE";
-               sd.resourceEntityVersion = "1";
-               
-               rt = new ResourceTarget();
-               rt.resourceTargetId = "MDTWNJ21A5";
-               rt.resourceTargetType = "Site";
-
-
-               rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               //rr.resourceName = "vlan-id-filter";
-               rr.endPointPosition="VPE-Core1";
-               rr.rangeMaxOverride = -1;
-               rr.rangeMinOverride = -1;
-       
-               
-               rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.reserve(sd, rt, rr, rsList);
-               
-               
-               //VPE-Core2
-               sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VPE";
-               sd.resourceEntityVersion = "1";
-               
-               rt = new ResourceTarget();
-               rt.resourceTargetId = "MDTWNJ21A5";
-               rt.resourceTargetType = "Site";
-
-
-               rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               //rr.resourceName = "vlan-id-filter";
-               rr.endPointPosition="VPE-Core2";
-               rr.rangeMaxOverride = -1;
-               rr.rangeMinOverride = -1;
-       
-               
-               rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.reserve(sd, rt, rr, rsList);
-               
-               
-               //VPE-Core3
-               sd = new ResourceEntity();
-               sd.resourceEntityId = "gblond2003me6";
-               sd.resourceEntityType = "VPE";
-               sd.resourceEntityVersion = "1";
-               
-               rt = new ResourceTarget();
-               rt.resourceTargetId = "MDTWNJ21A5";
-               rt.resourceTargetType = "Site";
-
-
-               rr= new ResourceRequest();
-               rr.serviceModel = "MY-SERV-MODEL";
-               //rr.resourceName = "vlan-id-filter";
-               rr.endPointPosition="VPE-Core3";
-               rr.rangeMaxOverride = -1;
-               rr.rangeMinOverride = -1;
-       
-               
-               rsList = new ArrayList<ResourceResponse>();
-               resourceAllocator.reserve(sd, rt, rr, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-               
-               resource.print();
-               allocationItem.print();
-               
-               log.info("========================  Query + t ==============================");
-               rsList = new ArrayList<org.onap.ccsdk.sli.adaptors.ra.comp.ResourceResponse>();
-               resourceAllocator.query(sd, null, rr, rsList);
-               
-               rsList.forEach(r -> {
-                       StrUtil.info(log, r);
-               });
-               
-               
-               
-               SvcLogicContext ctx = new SvcLogicContext();
-               ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
-               ctx.setAttribute("ra-input.reservation-entity-type", "VPE");
-
-               
-               QueryStatus st = resourceAllocator.release("NetworkCapacity", "gblond2003me6", ctx);
-               Assert.assertTrue(st == QueryStatus.SUCCESS);
-
-       }
+    public void test006() throws Exception {
+        String t = "006";
+        log.info("============== reserve " + t + " ================================");
+        log.info("=== Test successful response - new start - all resources available");
+
+        ResourceEntity sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VPE-Cust";
+
+        ResourceTarget rt = new ResourceTarget();
+        rt.resourceTargetId = "MDTWNJ21A5";
+        rt.resourceTargetType = "Site";
+
+
+        ResourceRequest rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL-1";
+        rr.resourceName = "cust-vlan-id";
+
+
+        List<ResourceResponse> rsList = new ArrayList<>();
+        resourceAllocator.reserve(sd, rt, rr, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+        log.info("========================  Query + t ==============================");
+        rsList = new ArrayList<>();
+        resourceAllocator.query(sd, null, rr, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+    }
+
+    @Test
+    public void test007() throws Exception {
+        String t = "007";
+        log.info("============== reserve " + t + " ================================");
+        log.info("=== Test successful response - new start - all resources available");
+
+        dataSetup.cleanup();
+
+        TestTable resource = new TestTable(jdbcTemplate, "RESOURCE", "resource_id", RESOURCE_COLUMNS);
+        TestTable allocationItem =
+                new TestTable(jdbcTemplate, "ALLOCATION_ITEM", "allocation_item_id", ALLOCATION_ITEM_COLUMNS);
+
+
+        ResourceEntity sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VPE";
+        sd.resourceEntityVersion = "1";
+
+        ResourceTarget rt = new ResourceTarget();
+        rt.resourceTargetId = "MDTWNJ21A5";
+        rt.resourceTargetType = "Site";
+
+
+        ResourceRequest rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        // rr.resourceName = "vlan-id-outer";
+        rr.endPointPosition = "VPE-Cust";
+        rr.rangeMaxOverride = -1;
+        rr.rangeMinOverride = -1;
+
+
+        List<ResourceResponse> rsList = new ArrayList<>();
+        resourceAllocator.reserve(sd, rt, rr, rsList);
+
+        // VPE-Core1
+        sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VPE";
+        sd.resourceEntityVersion = "1";
+
+        rt = new ResourceTarget();
+        rt.resourceTargetId = "MDTWNJ21A5";
+        rt.resourceTargetType = "Site";
+
+
+        rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        // rr.resourceName = "vlan-id-filter";
+        rr.endPointPosition = "VPE-Core1";
+        rr.rangeMaxOverride = -1;
+        rr.rangeMinOverride = -1;
+
+
+        rsList = new ArrayList<>();
+        resourceAllocator.reserve(sd, rt, rr, rsList);
+
+
+        // VPE-Core2
+        sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VPE";
+        sd.resourceEntityVersion = "1";
+
+        rt = new ResourceTarget();
+        rt.resourceTargetId = "MDTWNJ21A5";
+        rt.resourceTargetType = "Site";
+
+
+        rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        // rr.resourceName = "vlan-id-filter";
+        rr.endPointPosition = "VPE-Core2";
+        rr.rangeMaxOverride = -1;
+        rr.rangeMinOverride = -1;
+
+
+        rsList = new ArrayList<>();
+        resourceAllocator.reserve(sd, rt, rr, rsList);
+
+
+        // VPE-Core3
+        sd = new ResourceEntity();
+        sd.resourceEntityId = "gblond2003me6";
+        sd.resourceEntityType = "VPE";
+        sd.resourceEntityVersion = "1";
+
+        rt = new ResourceTarget();
+        rt.resourceTargetId = "MDTWNJ21A5";
+        rt.resourceTargetType = "Site";
+
+
+        rr = new ResourceRequest();
+        rr.serviceModel = "MY-SERV-MODEL";
+        // rr.resourceName = "vlan-id-filter";
+        rr.endPointPosition = "VPE-Core3";
+        rr.rangeMaxOverride = -1;
+        rr.rangeMinOverride = -1;
+
+
+        rsList = new ArrayList<>();
+        resourceAllocator.reserve(sd, rt, rr, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+        resource.print();
+        allocationItem.print();
+
+        log.info("========================  Query + t ==============================");
+        rsList = new ArrayList<>();
+        resourceAllocator.query(sd, null, rr, rsList);
+
+        rsList.forEach(r -> {
+            StrUtil.info(log, r);
+        });
+
+
+
+        SvcLogicContext ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.reservation-entity-id", "gblond2003me6");
+        ctx.setAttribute("ra-input.reservation-entity-type", "VPE");
+
+
+        QueryStatus st = resourceAllocator.release("NetworkCapacity", "gblond2003me6", ctx);
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+
+    }
+
+    @Test
+    public void test008() throws Exception {
+        String t = "008";
+        log.info("============== reserve " + t + " ================================");
+        log.info("=== Test range-force-new-numbers = false");
+
+        String entityId = "reserve" + t;
+        String targetId = "port-id-1";
+        String resourceName = "cust-vlan-id";
+
+        String assetId = "VNF::" + targetId;
+        String resourceUnion = "SI::" + entityId;
+        String resourceSet1 = resourceUnion + "::1";
+        String resourceSet2 = resourceUnion + "::2";
+
+        dataSetup.cleanup();
+
+        dataSetup.setupRangeItem(resourceName, assetId, resourceSet1, resourceUnion, "201");
+
+        SvcLogicContext ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.service-model", "ADIG");
+        ctx.setAttribute("ra-input.check-only", "false");
+
+        ctx.setAttribute("ra-input.resource-name", resourceName);
+        ctx.setAttribute("ra-input.range-force-new-numbers", "false");
+
+        ctx.setAttribute("ra-input.reservation-entity-type", "SI");
+        ctx.setAttribute("ra-input.reservation-entity-id", entityId);
+        ctx.setAttribute("ra-input.reservation-entity-version", "2");
+
+        ctx.setAttribute("ra-input.reservation-target-id", targetId);
+        ctx.setAttribute("ra-input.reservation-target-type", "VNF");
+
+        QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+        Assert.assertTrue(dataSetup.checkRangeItem(resourceName, assetId, resourceSet1, "201"));
+        Assert.assertTrue(dataSetup.checkRangeItem(resourceName, assetId, resourceSet2, "201"));
+    }
+
+    @Test
+    public void test009() throws Exception {
+        String t = "009";
+        log.info("============== reserve " + t + " ================================");
+        log.info("=== Test range-force-new-numbers = true");
+
+        String entityId = "reserve" + t;
+        String targetId = "port-id-1";
+        String resourceName = "cust-vlan-id";
+
+        String assetId = "VNF::" + targetId;
+        String resourceUnion = "SI::" + entityId;
+        String resourceSet1 = resourceUnion + "::1";
+        String resourceSet2 = resourceUnion + "::2";
+
+        dataSetup.cleanup();
+
+        dataSetup.setupRangeItem(resourceName, assetId, resourceSet1, resourceUnion, "201");
+
+        SvcLogicContext ctx = new SvcLogicContext();
+        ctx.setAttribute("ra-input.service-model", "ADIG");
+        ctx.setAttribute("ra-input.check-only", "false");
+
+        ctx.setAttribute("ra-input.resource-name", resourceName);
+        ctx.setAttribute("ra-input.range-force-new-numbers", "true");
+
+        ctx.setAttribute("ra-input.reservation-entity-type", "SI");
+        ctx.setAttribute("ra-input.reservation-entity-id", entityId);
+        ctx.setAttribute("ra-input.reservation-entity-version", "2");
+
+        ctx.setAttribute("ra-input.reservation-target-id", targetId);
+        ctx.setAttribute("ra-input.reservation-target-type", "VNF");
+
+        QueryStatus st = resourceAllocator.reserve("NetworkCapacity", null, null, null, ctx);
+
+        Assert.assertTrue(st == QueryStatus.SUCCESS);
+        Assert.assertTrue(dataSetup.checkRangeItem(resourceName, assetId, resourceSet1, "201"));
+        Assert.assertFalse(dataSetup.checkRangeItem(resourceName, assetId, resourceSet2, "201"));
+    }
 }
diff --git a/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/rm/DataSetup.java b/resource-assignment/provider/src/test/java/jtest/org/onap/ccsdk/sli/adaptors/rm/DataSetup.java
deleted file mode 100644 (file)
index 473a99f..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
- * ================================================================================
- * Copyright (C) 2017 AT&T 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.onap.ccsdk.sli.adaptors.rm;
-
-import java.util.Date;
-
-import jtest.util.org.onap.ccsdk.sli.adaptors.ra.TestDb;
-import jtest.util.org.onap.ccsdk.sli.adaptors.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;
-    }
-}