def __setcoll(self, coll_name): try: if self.__db is not None: self.coll = self.__db[coll_name] except Exception, e: helper.perror('Error when setting collection!\n', e) self.coll = None
def load_context_from_skeleton(skeleton_path): try: sys.path.insert(0, '.') ligamentfile = imp.load_source('ligamentfile', skeleton_path) except IOError: perror("Error importing skeleton.py file found in current directory") exit (1) build_context = Context() for name, task in ligamentfile.ligament_tasks.iteritems(): if isinstance(task, BuildTarget): pout("registered task '%s'" % name, groups=["debug"]) task.register_with_context(name, build_context) elif isinstance(task, list): BuildTargetList( DeferredDependency(t) for t in task ).register_with_context(name, build_context) to_expose = ( ligamentfile.exposed_tasks if "exposed_tasks" in dir(ligamentfile) else build_context.tasks) for name in to_expose: if name in build_context.tasks: build_context.expose_task(name) else: perror("task '%s' not declared in ligament file" % name) return build_context
def __setdb(self, db_name): try: if self.__client is not None: self.__db = self.__client[db_name] except Exception, e: helper.perror('Error when setting db!\n', e) self.__db = None
def register_task(self, name, task): if name not in self.tasks: self.tasks[name] = ContextEntry(name, task) elif not self.tasks[name].task: self.tasks[name].task = task else: perror("tried to register duplicate tasks under name \"%s\"" % (name))
def delete_many(self, *dic): try: if self.coll is not None and len(dic) == 1: return str(self.coll.delete_many(dic[0])) else: helper.perror('not set coll!\n') return except Exception, e: helper.perror('Error when update!\n', e) return
def update_one(self, *dic): try: if self.coll is not None and len(dic) == 2: return str(self.coll.update_one(dic[0], dic[1])) else: helper.perror('not set coll!\n') return except Exception, e: helper.perror('Error when update!\n', e) return
def insert(self, dic): try: if self.coll is not None: return str(self.coll.insert_one(dic).inserted_id) else: helper.perror('not set coll!\n') return except Exception, e: helper.perror('Error when insert!\n', e) return
def query_one(self, *dic): if self.coll is not None: if len(dic) == 1: item = self.coll.find_one(dic[0]) return item # for i in cursor.... if len(dic) == 2: item = self.coll.find_one(dic[0], dic[1]) return item helper.perror('query args error!\n') return None else: helper.perror('not set coll!\n') return None
def query(self, *dic): if self.coll is not None: if len(dic) == 1: cursor = self.coll.find(dic[0]) return cursor # for i in cursor.... if len(dic) == 2: cursor = self.coll.find(dic[0], dic[1]) return cursor helper.perror('query args error!\n') return None else: helper.perror('not set coll!\n') return None
def __init__( self, db, coll, uri='mongodb://localhost:27017', ): self.coll = '' self.__db = '' try: self.__client = MongoClient(uri) self.__setdb(db) self.__setcoll(coll) except errors.ConnectionFailure, e: helper.perror('Error when init!\n', e) self.__client = None exit(0) return
def build_task(self, name): """ Builds a task by name, resolving any dependencies on the way """ try: self._gettask(name).value = ( self._gettask(name).task.resolve_and_build()) except TaskExecutionException as e: perror(e.header, indent="+0") perror(e.message, indent="+4") self._gettask(name).value = e.payload except Exception as e: perror("error evaluating target '%s' %s" % (name, type(self._gettask(name).task))) perror(traceback.format_exc(e), indent='+4') self._gettask(name).value = None self._gettask(name).last_build_time = time.time()