diff --git a/config.json b/config.json index 4d35485..6f45e7d 100644 --- a/config.json +++ b/config.json @@ -1,15 +1,6 @@ { - "virtual-env":{ - "class":"Sandbox", - "config":{ - "3-launchpad":{"requirements":"/Users/steve/Documents/git/repair-file/required.txt","sandbox":"/Users/steve/Documents/git/sandbox"} - } - }, - "processes":{ - "class":"DetailProcess", - "config":{ - "system":["postgresql","couchdb","httpd"] - } - } - + "key":"nyemba@gmail.com", + "id":"maori", + "apps":"chrome,preview,itunes", + "folders":"/Users/steve/tmp" } diff --git a/src/data-collector.py b/src/data-collector.py index 397c98c..45771ee 100644 --- a/src/data-collector.py +++ b/src/data-collector.py @@ -1,10 +1,19 @@ -""" +h=""" This is a data-collector client, that is intended to perform data-collection operations and submit them to an endpoint @required: - key application/service key - id node identifier + usage : + python data-collector.py --path config.json + The configuration file is structured as JSON object as follows : + { + id: node identifier + key: customer's identification key + apps:"app_1,app_2,...", + folders:"path_1,path_2, ..." + } """ -from utils.params import PARAMS as SYS_ARGS +from utils.params import PARAMS as SYS_ARGS, Logger import requests import pickle import json @@ -29,16 +38,24 @@ class Collector(Thread) : headers = {"key":SYS_ARGS["key"],"id":SYS_ARGS["id"]} #,"scope":json.dumps(scope)} headers['content-type'] = 'application/json' try: + Logger.log(subject='Collector',object='api',action='request',value=ENDPOINT) url = "/".join([ENDPOINT,"init/collector"]) - r = requests.post(url,headers=headers,data=json.dumps(SYS_ARGS)) + data = {} + for id in SYS_ARGS : + if id not in ['id','key'] : + data[id] = SYS_ARGS[id] + + r = requests.post(url,headers=headers,data=json.dumps(data)) r = json.loads(r.text) self.monitor = pickle.loads(r[0]) self.monitor.lock = RLock() #:w #self.monitor.set('lock',RLock()) + Logger.log(subject='Collector',object='api',action='load',value='') except Exception,e: - print e.message + + Logger.log(subject='Collector',object='api',action='error',value=str(e)) self.monitor = None def run(self): @@ -47,7 +64,7 @@ class Collector(Thread) : """ #self.monitor.start() - + Logger.log(subject='Collector',object='monitor',action='start',value='') thread = Thread(target=self.monitor.run) thread.start() # print self.monitor.config['store'] @@ -62,6 +79,17 @@ class Collector(Thread) : # except Exception,e: # print e -if __name__ == '__main__' : +if __name__ == '__main__' and 'path' in SYS_ARGS: + # + # + + path = SYS_ARGS['path'] + f = open(path) + p = json.loads(f.read()) + f.close() + Logger.init('data-collector') + SYS_ARGS = dict(SYS_ARGS,** p) thread = Collector() - thread.start() \ No newline at end of file + thread.start() +else: + print (h) \ No newline at end of file diff --git a/src/monitor.pyc b/src/monitor.pyc index dd90f98..9bbd0ed 100644 Binary files a/src/monitor.pyc and b/src/monitor.pyc differ diff --git a/src/utils/agents/actor.pyc b/src/utils/agents/actor.pyc index 008d30b..6273240 100644 Binary files a/src/utils/agents/actor.pyc and b/src/utils/agents/actor.pyc differ diff --git a/src/utils/params.py b/src/utils/params.py index 0abfcdd..4808f93 100644 --- a/src/utils/params.py +++ b/src/utils/params.py @@ -16,4 +16,17 @@ if len(sys.argv) > 1: PARAMS[key] = ('/'+value).replace('//','/') i += 2 + +import logging +import json +from datetime import datetime +class Logger : + @staticmethod + def init(filename): + name = "-".join([filename,datetime.now().strftime('%d-%m-%Y')])+".log" + logging.basicConfig(filename=name,level=logging.INFO,format="%(message)s") + @staticmethod + def log(**args) : + args['date'] = datetime.now().strftime('%d-%m-%Y %M:%H:%S') + logging.info(json.dumps(args))