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.RangeResource;
+import org.onap.ccsdk.sli.adaptors.rm.data.ReleaseRequest;
import org.onap.ccsdk.sli.adaptors.rm.data.Resource;
import org.onap.ccsdk.sli.adaptors.util.str.StrUtil;
import org.slf4j.Logger;
public class EndPointAllocatorImpl implements EndPointAllocator {
private static final Logger log = LoggerFactory.getLogger(EndPointAllocatorImpl.class);
-
+
private ResourceManager resourceManager;
private Map<String, List<AllocationRule>> allocationRuleMap;
if (!allgood) {
String resourceSetId = resourceEntity.resourceEntityType + "::" + resourceEntity.resourceEntityId
+ "::" + resourceEntity.resourceEntityVersion;
- resourceManager.releaseResourceSet(resourceSetId);
+ resourceManager.releaseResources(ReleaseRequest.resourceSet(resourceSetId));
}
}
}
}
@Override
- public ResourceData getResource(String resourceTargetType, String resourceTargetId, String resourceName) {
- ResourceData rd = new ResourceData();;
+ public List<ResourceData> getResourcesForTarget(String resourceTargetTypeFilter, String resourceTargetIdFilter,
+ String resourceName) {
+ List<ResourceData> rdlist = new ArrayList<>();
+
+ String assetIdFilter = null;
+ if (resourceTargetTypeFilter != null && resourceTargetIdFilter != null) {
+ assetIdFilter = resourceTargetTypeFilter + "::" + resourceTargetIdFilter;
+ } else if (resourceTargetTypeFilter != null) {
+ assetIdFilter = resourceTargetTypeFilter;
+ } else if (resourceTargetIdFilter != null) {
+ assetIdFilter = resourceTargetIdFilter;
+ }
+
+ List<Resource> rlist = resourceManager.queryResources(resourceName, assetIdFilter);
+
+ for (Resource r : rlist) {
+
+ log.info("ResourceName:" + r.resourceKey.resourceName + " assetId:" + r.resourceKey.assetId);
+
+ ResourceData rd = new ResourceData();
+ rdlist.add(rd);
+
+ rd.resourceName = r.resourceKey.resourceName;
+ int i1 = r.resourceKey.assetId.indexOf("::");
+ if (i1 > 0) {
+ rd.resourceTargetType = r.resourceKey.assetId.substring(0, i1);
+ rd.resourceTargetId = r.resourceKey.assetId.substring(i1 + 2);
+
+ int i2 = r.resourceKey.assetId.lastIndexOf("::");
+ if (i2 > i1) {
+ rd.resourceTargetValue = r.resourceKey.assetId.substring(i2 + 2);
+ }
+ } else {
+ rd.resourceTargetType = "";
+ rd.resourceTargetId = r.resourceKey.assetId;
+ }
+
+ rd.data = new HashMap<>();
+
+ if (r instanceof RangeResource) {
+ RangeResource rr = (RangeResource) r;
+
+ log.info("rr.used: " + rr.used);
+ String ss = String.valueOf(rr.used);
+ ss = ss.substring(1, ss.length() - 1);
+ rd.data.put("allocated", ss);
+
+ } else if (r instanceof LimitResource) {
+ LimitResource lr = (LimitResource) r;
+
+ log.info("lr.used: " + lr.used);
+ rd.data.put("allocated", String.valueOf(lr.used));
+ }
+ }
+
+ return rdlist;
+ }
+
+ @Override
+ public ResourceData getResource(String resourceTargetType, String resourceTargetId, String resourceName,
+ String resourceEntityTypeFilter, String resourceEntityIdFilter, String resourceShareGroupFilter) {
+ ResourceData rd = new ResourceData();
String assetId = resourceTargetType + "::" + resourceTargetId;
- Resource r = resourceManager.getResource(resourceName, assetId);
+
+ String resourceUnionFilter = null;
+ if (resourceEntityTypeFilter != null && resourceEntityIdFilter != null) {
+ resourceUnionFilter = resourceEntityTypeFilter + "::" + resourceEntityIdFilter;
+ } else if (resourceEntityTypeFilter != null) {
+ resourceUnionFilter = resourceEntityTypeFilter;
+ } else if (resourceEntityIdFilter != null) {
+ resourceUnionFilter = resourceEntityIdFilter;
+ }
+
+ Resource r = null;
+ if (resourceUnionFilter != null || resourceShareGroupFilter != null) {
+ r = resourceManager.queryResource(resourceName, assetId, resourceUnionFilter, resourceShareGroupFilter);
+ } else {
+ r = resourceManager.getResource(resourceName, assetId);
+ }
+
if (r != null) {
log.info("ResourceName:" + r.resourceKey.resourceName + " assetId:" + r.resourceKey.assetId);