X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Fopenstack%2Fopenstack_dummies%2Fbase_openstack_dummy.py;fp=src%2Femuvim%2Fapi%2Fopenstack%2Fopenstack_dummies%2Fbase_openstack_dummy.py;h=a2c471447185ded74581b1fe3ef6b029f9b1d294;hb=00199782de7042b51927bbbac5540d6f671597bb;hp=0000000000000000000000000000000000000000;hpb=0d8066654408ea1994d599c12c61b13709055a2d;p=osm%2Fvim-emu.git diff --git a/src/emuvim/api/openstack/openstack_dummies/base_openstack_dummy.py b/src/emuvim/api/openstack/openstack_dummies/base_openstack_dummy.py new file mode 100644 index 0000000..a2c4714 --- /dev/null +++ b/src/emuvim/api/openstack/openstack_dummies/base_openstack_dummy.py @@ -0,0 +1,38 @@ +from flask import Flask, request +from flask_restful import Api, Resource +import logging + + +class BaseOpenstackDummy(Resource): + """ + This class is the base class for all openstack entrypoints of son-emu. + """ + + def __init__(self, listenip, port): + self.ip = listenip + self.port = port + self.compute = None + self.manage = None + self.playbook_file = '/tmp/son-emu-requests.log' + with open(self.playbook_file, 'w'): + pass + + # setup Flask + self.app = Flask(__name__) + self.api = Api(self.app) + + def _start_flask(self): + logging.info("Starting %s endpoint @ http://%s:%d" % (__name__, self.ip, self.port)) + if self.app is not None: + self.app.before_request(self.dump_playbook) + self.app.run(self.ip, self.port, debug=True, use_reloader=False) + + def dump_playbook(self): + with self.manage.lock: + with open(self.playbook_file, 'a') as logfile: + if len(request.data) > 0: + data = "# %s API\n" % str(self.__class__).split('.')[-1].rstrip('\'>') + data += "curl -X {type} -H \"Content-type: application/json\" -d '{data}' {url}".format(type=request.method, + data=request.data, + url=request.url) + logfile.write(data + "\n")