diff --git a/clientsdb.py b/clientsdb.py index 084278a..cbc11ae 100644 --- a/clientsdb.py +++ b/clientsdb.py @@ -66,7 +66,7 @@ def setencpasswd(clientemail, newpass): #TODO: Send new email to the client to notify the password change. This time sending the password in plain text is not needed. -def check(clientid): +def checkin(clientid): """ return list of owned vmids if client id matches the client database. (logged-in users)""" #1. search for the client try: diff --git a/proxmaster.py b/proxmaster.py index d8d4503..b63e495 100644 --- a/proxmaster.py +++ b/proxmaster.py @@ -29,7 +29,7 @@ def welcome(): def selector(fn, req, vmid=0): """ try to exec commands """ json = req.context['doc'] - print(json) + print(json) #TODO: remove debug print apipass = json['apikey'] if apipass != config.get('general', 'apipass'): status = falcon.HTTP_403 @@ -44,6 +44,10 @@ def selector(fn, req, vmid=0): #logger.info('grid> access requested for {} with {}'.format(clientemail, passwd)) body = clientsdb.validate(clientemail, passwd) + elif fn == 'checkin': + clientid = json['clientid'] + body = clientsdb.checkin(clientid) + elif fn == 'create': body = plugin.vmcreate(json) @@ -146,10 +150,17 @@ def max_body(limit): class ValidateResource(object): @falcon.before(max_body(64 * 1024)) def on_post(self, req, resp): - """ get clientemail and password and compare it with the client db and returns a list of managed object IDs """ + """ get clientemail and password, compare it with the client db and returns a list of managed objects """ resp.status, response = selector('validate', req) req.context['result'] = response +class CheckInResource(object): + @falcon.before(max_body(64 * 1024)) + def on_post(self, req, resp): + """ get client id, compare it with the client db and returns a list of managed objects """ + resp.status, response = selector('checkin', req) + req.context['result'] = response + class CreateResource(object): @falcon.before(max_body(64 * 1024)) def on_post(self, req, resp): @@ -234,6 +245,9 @@ wsgi_app = api = application = falcon.API(middleware=[ res_validate = ValidateResource() api.add_route('/validate', res_validate) +res_checkin = CheckInResource() +api.add_route('checkin', res_checkin) + res_create = CreateResource() api.add_route('/create', res_create)