Skip to content

Commit

Permalink
refactoring - external access
Browse files Browse the repository at this point in the history
  • Loading branch information
fsignorini committed Oct 4, 2018
1 parent 18bb96e commit ad62577
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 29 deletions.
2 changes: 1 addition & 1 deletion app/controller/crawlerApp.py
Expand Up @@ -60,7 +60,7 @@ def put(self, datacenter, instance, task):

def crawlerFactory(self, instance, task, require):
connector = ExternalMaestroData()\
.get_request(path="connections/%s" % instance)\
.list_request(path="connections/%s" % instance)\
.get_results()

if connector == None:
Expand Down
32 changes: 21 additions & 11 deletions app/repository/externalMaestro.py
Expand Up @@ -2,32 +2,38 @@
from app.libs.logger import logger
from .maestroRequest import MaestroRequest


class ExternalMaestro(object):

def __init__(self, base):
def __init__(self, base, tftm="json"):
self._base = base
self._headers = {}
self._results = None
self._format = tftm

def set_headers(self, headers):
self._headers = headers
return self

def get_uri(self):
self._base
def set_fomart(self, format):
self._format = format
return self

def get_results(self, lens=None):
results = self._results.get_results()
results = self._results.get_json()
if lens:
results = results.get(lens)

return results

def get_request(self, path, query={}):
def get_raw(self, lens=None):
return self._results.get_raw()

def list_request(self, path, query={}):
self._results = self.request(path, {'query': query}, 'get')
return self

def get_aggregation(self, path, entity, pipeline):
def list_aggregation(self, path, entity, pipeline):
jpipeline = json.dumps(pipeline)
self._results = self.request(path, {'entity': entity, 'pipeline': jpipeline}, 'post')
return self
Expand All @@ -39,18 +45,22 @@ def put_request(self, path, body={}):
def post_request(self, path, body={}):
self._results = self.request(path, body, 'post')
return self

def request(self, path, query, verb):
path = "%s/%s" % (self._base, path)
MaestroRqt = MaestroRequest().set_headers(self._headers)

MaestroRqt = MaestroRequest(verb, self._headers)
params = {
'path': "%s/%s" % (self._base, path),
self._format: query
}

try:
MaestroRqt.exec_request(path, query, verb)
MaestroRqt.exec_request(**params)
logger.debug("MaestroRequest External path - %s", path)
except Exception as error:
self.error_handling(task='ExternalMaestro', msg=str(error))

return MaestroRqt

def error_handling(self, task, msg):
logger.error("Discovery: [%s] - %s", task, msg)
logger.error("MaestroExternal: [%s] - %s", task, msg)
2 changes: 1 addition & 1 deletion app/repository/externalMaestroData.py
Expand Up @@ -17,4 +17,4 @@ def error_handling(self, task, msg):
if self.ent_id :
return notify_error(task=task, msg=msg, conn_id=self.ent_id)

logger.error("Discovery: [%s] - %s", task, msg)
logger.error("MaestroData: [%s] - %s", task, msg)
19 changes: 6 additions & 13 deletions app/repository/maestroRequest.py
Expand Up @@ -5,27 +5,20 @@

class MaestroRequest(object):

def __init__(self):
def __init__(self, verb='get', headers={}):
self.__context = None
self.__headers = {}
self.__headers = headers
self.__path = None
self.__verb = verb

def exec_request(self, path, json, verb):
self.__context = getattr(requests, verb)(path, json=json, headers=self.__headers)
return self

def exec_request_data(self, path, data, verb):
self.__context = getattr(requests, verb)(path, data=data, headers=self.__headers)
return self

def set_headers(self, headers):
self.__headers = headers
def exec_request(self, path, json=None, data=None):
self.__context = getattr(requests, self.__verb)(path, json=json, data=data, headers=self.__headers)
return self

def get_status(self):
return self.__context.status_code

def get_results(self):
def get_json(self):
if self.__context.status_code is 200:
return self.__context.json()

Expand Down
2 changes: 1 addition & 1 deletion app/services/translate/mapper.py
Expand Up @@ -15,7 +15,7 @@ def setResultPath(self, data):

def getConnection(self, id):
content = ExternalMaestroData(id)\
.get_request(path="connections/%s" % id)\
.list_request(path="connections/%s" % id)\
.get_results()

return content
Expand Down
3 changes: 1 addition & 2 deletions app/tasks/notification.py
Expand Up @@ -13,7 +13,6 @@ def task_notification(msg, conn_id, task, status='success'):
body = {'status': status, 'task': task, 'msg': msg}

ExternalMaestro(base)\
.post_request(path="connection/%s" % conn_id, body=body)\
.get_results()
.post_request(path="connection/%s" % conn_id, body=body)

return {'conn_id': conn_id, 'task': task}

0 comments on commit ad62577

Please sign in to comment.