+ def delete(self):
+ """
+ Stops a running service specified by its service and instance UUID.
+ """
+ # 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")
+
+ # 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)
+ del GK.services.get(service_uuid).instances[instance_uuid]
+ return
+ return "Service not found", 404
+
+class Exit(fr.Resource):
+
+ def put(self):
+ """
+ Stop the running Containernet instance regardless of data transmitted
+ """
+ GK.net.stop()
+
+
+def initialize_GK():
+ global GK
+ GK = Gatekeeper()
+
+