X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Fsonata%2Fdummygatekeeper.py;h=f258e492119496315c4d69f50a6659c7d5bbc9a0;hb=8bbc228be0a98bb10be991dbf361b939b1acfe2f;hp=e89c007b76151c5eae4221c27064fca30604e3f2;hpb=e26487ba6b33c22a1e3f5f843364df9f0efc07eb;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/sonata/dummygatekeeper.py b/src/emuvim/api/sonata/dummygatekeeper.py index e89c007..f258e49 100644 --- a/src/emuvim/api/sonata/dummygatekeeper.py +++ b/src/emuvim/api/sonata/dummygatekeeper.py @@ -9,6 +9,7 @@ import logging import os import uuid import hashlib +import json from flask import Flask, request import flask_restful as fr @@ -48,7 +49,10 @@ class Packages(fr.Resource): def post(self): """ + Upload a *.son service package to the dummy gatekeeper. + We expect request with a *.son file and store it in UPLOAD_FOLDER + :return: UUID """ try: # get file contents @@ -71,18 +75,38 @@ class Packages(fr.Resource): return {"service_uuid": None, "size": 0, "sha1": None, "error": "upload failed"} def get(self): + """ + Return a list of UUID's of uploaded service packages. + :return: dict/list + """ return {"service_uuid_list": list(GK.packages.iterkeys())} class Instantiations(fr.Resource): def post(self): - # TODO implement method - pass + """ + Instantiate a service specified by its UUID. + Will return a new UUID to identify the running service instance. + :return: UUID + """ + # TODO implement method (start real service) + json_data = request.get_json(force=True) + service_uuid = json_data.get("service_uuid") + if service_uuid is not None: + service_instance_uuid = str(uuid.uuid4()) + GK.instantiations[service_instance_uuid] = service_uuid + logging.info("Starting service %r" % service_uuid) + return {"service_instance_uuid": service_instance_uuid} + return None def get(self): + """ + Returns a list of UUIDs containing all running services. + :return: dict / list + """ # TODO implement method - pass + return {"service_instance_uuid_list": list(GK.instantiations.iterkeys())} # create a single, global GK object GK = Gatekeeper()