From 73556f1d3e520a93049bbe844a3ccf2150167ede Mon Sep 17 00:00:00 2001 From: Steve Nyemba Date: Mon, 20 Nov 2017 13:11:28 -0600 Subject: [PATCH] bug fix and registration process streamlined --- readme.md | 0 requirements.txt | 19 +++++++++------- src/api/index.py | 59 +++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 62 insertions(+), 16 deletions(-) mode change 100644 => 100755 readme.md mode change 100644 => 100755 requirements.txt mode change 100644 => 100755 src/api/index.py diff --git a/readme.md b/readme.md old mode 100644 new mode 100755 diff --git a/requirements.txt b/requirements.txt old mode 100644 new mode 100755 index c83f924..9bb4eff --- a/requirements.txt +++ b/requirements.txt @@ -1,15 +1,16 @@ -Flask==0.11.1 -Flask-Session==0.3.0 -Flask-SocketIO==2.8.2 -Jinja2==2.8 -MarkupSafe==0.23 -Werkzeug==0.11.11 aniso8601==1.2.0 -argparse==1.2.1 +certifi==2017.11.5 +chardet==3.0.4 click==6.6 couchdbkit==0.6.5 +Flask==0.11.1 +Flask-Session==0.3.0 +Flask-SocketIO==2.8.2 http-parser==0.8.3 +idna==2.6 itsdangerous==0.24 +Jinja2==2.8 +MarkupSafe==0.23 ngram==3.3.0 numpy==1.11.3 pika==0.10.0 @@ -17,7 +18,9 @@ python-dateutil==2.6.0 python-engineio==1.1.0 python-socketio==1.6.2 pytz==2016.10 +requests==2.18.4 restkit==4.2.2 six==1.10.0 socketpool==0.5.3 -wsgiref==0.1.2 +urllib3==1.22 +Werkzeug==0.11.11 diff --git a/src/api/index.py b/src/api/index.py old mode 100644 new mode 100755 index db1494e..783c381 --- a/src/api/index.py +++ b/src/api/index.py @@ -371,14 +371,46 @@ def app_status() : @app.route('/init/collector',methods=['POST']) +def init_collector(): + """ + This function will provide context for the calling code to be able to submit data + @header key user's key + @header id node identifier + + @return {"plan":...,"store":...} + """ + r = {} + if 'key' in request.headers and 'id' in request.headers : + try: + key = request.headers['key'] + node= request.headers['id'] + config = json.loads(json.dumps(CONFIG)) + handler = Register(write=class_write,read=class_read,store=config['store']['args'],default=CONFIG['plan'],uid=key) + plan = handler.get_active_plan() + if plan : + store = json.loads(json.dumps(CONFIG['store'])) + store['args']['uid'] = key + store['args']['dbname'] = plan['name'] + + r = {"plan":plan,"store":store} + pass + except Exception as e: + print e + else: + """ + Invalid parameters were sent + """ + pass + return json.dumps(r) def InitCollector(): """ This endpoint is intended to initialize the collection agent @pre registration of the client should be done against the store API """ - global CONFIG r = [] manager={} + + factory = DataSourceFactory() try: key = request.headers['key'] @@ -393,7 +425,6 @@ def InitCollector(): a = {'apps':'actor.Apps','mailer':'actor.Mailer','folders':'actor.Folders'} lagents = [] lactors = [] - for id in m : if id in body : agent = eval(m[id]+"()") @@ -410,18 +441,30 @@ def InitCollector(): _actor = eval(a[id]+"()") lactors.append(_actor) - config = dict(CONFIG) # # @TODO: The database name should be provided by the active plan # The database name will be overriden by the user's current plan # - config['store']['args']['dbname'] = None #'monitor-logs' - config['store']['args']['uid'] = key + #global class_write,class_read,CONFIG + print 'plan' in session,CONFIG['store']['args'] + if 'plan' not in session : + config = json.loads(json.dumps(CONFIG)) + plan = config['plan'] + handler = Register(write=class_write,read=class_read,store=config['store']['args'],default=plan,uid=key) + plan = handler.get_active_plan() + session['plan'] = plan + else: + plan = session['plan'] + + _config = json.loads(json.dumps(CONFIG)) + #_config['store']['args']['dbname'] = plan['name'] #'monitor-logs' + _config['store']['args']['uid'] = key + _config['store']['args']['dbname'] = plan['name'] manager = Manager() - manager.init(actors = lactors,agents=lagents,config=config,key=key,node=node) ; + manager.init(actors = lactors,agents=lagents,config=_config,key=key,node=node) ; r = [pickle.dumps(manager)] - except Exception,e: - print '***** ',str(e) + except Exception as e: + print ' init (error) ',str(e) return json.dumps(r) """