package org.onap.ccsdk.sli.adaptors.ra;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
setAttr(ctx, pp + "resource-target-value", rd.resourceTargetValue);
setAttr(ctx, pp + "status", rd.status);
- if (rd.data != null && !rd.data.isEmpty()) {
- for (String kk : rd.data.keySet()) {
- String value = String.valueOf(rd.data.get(kk));
- setAttr(ctx, pp + kk, value);
- }
+ Map<String, String> dataProp = dataToProperties(rd.data);
+ for (String kk : dataProp.keySet()) {
+ String value = String.valueOf(dataProp.get(kk));
+ setAttr(ctx, pp + kk, value);
}
if (rd.allocationDataList != null && !rd.allocationDataList.isEmpty()) {
return data;
}
+ @SuppressWarnings("unchecked")
+ public static Map<String, String> dataToProperties(Map<String, Object> data) {
+ if (data == null || data.isEmpty()) {
+ return Collections.emptyMap();
+ }
+
+ Map<String, String> prop = new HashMap<>();
+ Map<String, Object> data1 = new HashMap<>(data);
+
+ while (!data1.isEmpty()) {
+ for (String key : new ArrayList<>(data1.keySet())) {
+ Object o = data1.get(key);
+ data1.remove(key);
+
+ if (o instanceof Boolean || o instanceof Number || o instanceof String) {
+ prop.put(key, o.toString());
+ } else if (o instanceof Map) {
+ Map<String, Object> mm = (Map<String, Object>) o;
+ for (String key1 : mm.keySet()) {
+ data1.put(key + "." + key1, mm.get(key1));
+ }
+ } else if (o instanceof List) {
+ List<Object> ll = (List<Object>) o;
+ prop.put(key + "_length", String.valueOf(ll.size()));
+ for (int i = 0; i < ll.size(); i++) {
+ data1.put(key + '[' + i + ']', ll.get(i));
+ }
+ }
+ }
+ }
+ return prop;
+ }
+
public void setResourceManager(ResourceManager resourceManager) {
this.resourceManager = resourceManager;
}
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights
* reserved.
- *
+ *
* Modifications Copyright (C) 2019 IBM.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
import org.onap.ccsdk.sli.adaptors.rm.data.LimitAllocationOutcome;
import org.onap.ccsdk.sli.adaptors.rm.data.LimitResource;
import org.onap.ccsdk.sli.adaptors.rm.data.MultiResourceAllocationOutcome;
+import org.onap.ccsdk.sli.adaptors.rm.data.Range;
import org.onap.ccsdk.sli.adaptors.rm.data.RangeAllocationItem;
import org.onap.ccsdk.sli.adaptors.rm.data.RangeAllocationOutcome;
+import org.onap.ccsdk.sli.adaptors.rm.data.RangeAllocationRequest;
import org.onap.ccsdk.sli.adaptors.rm.data.RangeResource;
import org.onap.ccsdk.sli.adaptors.rm.data.ReleaseRequest;
import org.onap.ccsdk.sli.adaptors.rm.data.Resource;
RangeAllocationOutcome rao = (RangeAllocationOutcome) ao;
rd.data.put("allocated", String.valueOf(StrUtil.listInt(rao.allocated)));
rd.data.put("used", String.valueOf(StrUtil.listInt(rao.used)));
+ List<Range> rangeList = ((RangeAllocationRequest) rao.request).rangeList;
+ if (rangeList != null && !rangeList.isEmpty()) {
+ List<Object> ll = new ArrayList<>();
+ for (Range r : rangeList) {
+ Map<String, Object> mm = new HashMap<>();
+ mm.put("min", r.min);
+ mm.put("max", r.max);
+ ll.add(mm);
+ }
+ rd.data.put("range-list", ll);
+ }
}
return Collections.singletonList(rd);
log.info("ResourceName:" + r.resourceKey.resourceName + " assetId:" + r.resourceKey.assetId);
-
+
rdlist.add(getResourceData(r));
}
public String resourceTargetType;
public String endPointPosition;
public String status;
- public Map<String, String> data;
+ public Map<String, Object> data;
public List<AllocationData> allocationDataList;
}
Assert.assertTrue(st == QueryStatus.SUCCESS);
Assert.assertTrue(dataSetup.checkRangeItem(resourceName, assetId, resourceSet1, "201"));
Assert.assertTrue(dataSetup.checkRangeItem(resourceName, assetId, resourceSet2, "201"));
+
+ Assert.assertEquals(ctx.getAttribute("resource-list_length"), "1");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].resource-name"), "cust-vlan-id");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].resource-target-type"), "VNF");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].resource-target-id"), "port-id-1");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].status"), "Success");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].allocated"), "201");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].used"), "201");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].range-list_length"), "1");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].range-list[0].min"), "2");
+ Assert.assertEquals(ctx.getAttribute("resource-list[0].range-list[0].max"), "1000");
}
@Test