- query_type = "nsi"
- if addtnl_args and "serviceProfileId" in addtnl_args:
- inputs["profile_id"] = addtnl_args["serviceProfileId"]
- query_type = "nsi_with_profile"
- else:
- query_type = "nssi"
- if addtnl_args and "serviceInstanceId" in addtnl_args:
- inputs["nsi_id"] = addtnl_args["serviceInstanceId"]
- query_type = "nssi_with_nsi"
-
- debug_log.debug("query type: {}".format(query_type))
-
- resource_count = get_resource_count(query_templates[query_type], inputs, osdf_config)
- if query_type not in ["nsi", "nssi"]:
- # if additional args is provided, it must have exactly one resource in its relationships
- resource_count = resource_count - 1
-
- return set_response("success", "", request_info, resource_count <= 0)
+ allotted_resources = get_allotted_resources(request_json, osdf_config)
+ resource_count = len(allotted_resources)
+ if resource_count == 1 and addtnl_args.get("serviceInstanceId"):
+ debug_log.debug("resource count {}".format(resource_count))
+ terminate_response = False
+ properties = allotted_resources[0]["relationship-data"]
+ for property in properties:
+ if property["relationship-key"] == "service-instance.service-instance-id" \
+ and property["relationship-value"] == addtnl_args.get("serviceInstanceId"):
+ terminate_response = True
+ elif resource_count > 1 or (resource_count == 1 and not addtnl_args.get("serviceInstanceId")):
+ terminate_response = False
+ elif resource_count == 0:
+ terminate_response = True
+
+ return set_response("success", "", request_info, terminate_response)