X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Ftango%2Fllcm.py;fp=src%2Femuvim%2Fapi%2Ftango%2Fllcm.py;h=fbdd6632275e8657d5ea05f5f5db4fbb1f235206;hp=bc94eb00d2af4840a5481fed2f16742783faaee6;hb=c6aec17df25eb05ae339c0f3fc0210bf04d23bf8;hpb=61ba12980c1a7959dfb83943513c8af9d70d0b26 diff --git a/src/emuvim/api/tango/llcm.py b/src/emuvim/api/tango/llcm.py index bc94eb0..fbdd663 100755 --- a/src/emuvim/api/tango/llcm.py +++ b/src/emuvim/api/tango/llcm.py @@ -920,24 +920,32 @@ class Instantiations(fr.Resource): """ # try to extract the service and instance UUID from the request json_data = request.get_json(force=True) - service_uuid = json_data.get("service_uuid") - instance_uuid = json_data.get("service_instance_uuid") - + service_uuid_input = json_data.get("service_uuid") + instance_uuid_input = json_data.get("service_instance_uuid") + if len(GK.services) < 1: + return "No service on-boarded.", 404 # try to be fuzzy - if service_uuid is None and len(GK.services) > 0: - # if we don't get a service uuid, we simply stop the last service - # in the list - service_uuid = list(GK.services.iterkeys())[0] - if instance_uuid is None and len( - GK.services[service_uuid].instances) > 0: - instance_uuid = list( - GK.services[service_uuid].instances.iterkeys())[0] - - if service_uuid in GK.services and instance_uuid in GK.services[service_uuid].instances: - # valid service and instance UUID, stop service - GK.services.get(service_uuid).stop_service(instance_uuid) - return "service instance with uuid %r stopped." % instance_uuid, 200 - return "Service not found", 404 + if service_uuid_input is None: + # if we don't get a service uuid we stop all services + service_uuid_list = list(GK.services.iterkeys()) + LOG.info("No service_uuid given, stopping all.") + else: + service_uuid_list = [service_uuid_input] + # for each service + for service_uuid in service_uuid_list: + if instance_uuid_input is None: + instance_uuid_list = list( + GK.services[service_uuid].instances.iterkeys()) + else: + instance_uuid_list = [instance_uuid_input] + # for all service instances + for instance_uuid in instance_uuid_list: + if (service_uuid in GK.services and + instance_uuid in GK.services[service_uuid].instances): + # valid service and instance UUID, stop service + GK.services.get(service_uuid).stop_service(instance_uuid) + LOG.info("Service instance with uuid %r stopped." % instance_uuid) + return "Service(s) stopped.", 200 class Exit(fr.Resource):