def add(self, alias, location): _validate_alias(alias) try: suite = TestSuite(alias=alias, location=location) Session.merge(suite) Session.commit() except: Session.rollback() raise
def add(self, hostname, user, password): try: agent = Agent(hostname=hostname, user=user, password=password) Session.merge(agent) Session.commit() return agent except: Session.rollback() raise
def _update_tasks(self, tasks): session = Session() nm_list = [] bt_list = [] for task in tasks: if task.task_type in ("bt", "magnet"): bt_list.append(task.id) else: nm_list.append(task.id) for res in self.xunlei.get_task_process(nm_list, bt_list): task = self.get_task(res['task_id']) task.status = res['status'] if task.status == "failed": task.invalid = True task.process = res['process'] if res['cid'] and res['lixian_url']: task.cid = res['cid'] task.lixian_url = res['lixian_url'] task = session.merge(task) if task.status in ("downloading", "finished"): if not self._update_file_list(task): task.status = "failed" task.invalid = True session.add(task) session.commit()
def _update_task_list(self, limit=10, st=0, ignore=False): session = Session() tasks = self.xunlei.get_task_list(limit, st) for task in tasks[::-1]: if task['status'] == "finished": self.last_task_id = task['task_id'] db_task_status = session.query( db.Task.status).filter(db.Task.id == task['task_id']).first() if db_task_status and db_task_status[0] == "finished": continue db_task = db.Task() db_task.id = task['task_id'] db_task.create_uid = self.uid db_task.cid = task['cid'] db_task.url = task['url'] db_task.lixian_url = task['lixian_url'] db_task.taskname = task['taskname'] db_task.task_type = task['task_type'] db_task.status = task['status'] if db_task.status == "failed": db_task.invalid = True db_task.process = task['process'] db_task.size = task['size'] db_task.format = task['format'] db_task = session.merge(db_task) if not self._update_file_list(db_task): db_task.status = "failed" db_task.invalid = True session.add(db_task) session.commit()
def _update_tasks(self, tasks): session = Session() nm_list = [] bt_list = [] for task in tasks: if task.task_type in ("bt", "magnet"): bt_list.append(task.id) else: nm_list.append(task.id) for res in self.xunlei.get_task_process(nm_list, bt_list): task = self.get_task(res['task_id']) task.status = res['status'] if task.status == "failed": task.invalid = True task.process = res['process'] if res['cid'] and res['lixian_url']: task.cid = res['cid'] task.lixian_url = res['lixian_url'] task = session.merge(task) if task.status in ("downloading", "finished"): if not self._update_file_list(task): task.status = "downloading" session.add(task) session.commit()
def _update_task_list(self, limit=10, st=0, ignore=False): session = Session() tasks = self.xunlei.get_task_list(limit, st) for task in tasks[::-1]: if len(self.task_id_sample) < TASK_ID_SAMPLE_SIZE and task['lixian_url']: self.task_id_sample.add(task['task_id']) if not self.last_task_id and task['lixian_url']: self.last_task_id = task['task_id'] db_task_status = session.query(db.Task.status).filter( db.Task.id == task['task_id']).first() if db_task_status and db_task_status[0] == "finished" and self.last_task_id: continue db_task = db.Task() db_task.id = task['task_id'] db_task.create_uid = self.uid db_task.cid = task['cid'] db_task.url = task['url'] db_task.lixian_url = task['lixian_url'] db_task.taskname = task['taskname'] db_task.task_type = task['task_type'] db_task.status = task['status'] if db_task.status == "failed": db_task.invalid = True db_task.process = task['process'] db_task.size = task['size'] db_task.format = task['format'] db_task = session.merge(db_task) if not self._update_file_list(db_task): db_task.status = "failed" db_task.invalid = True session.add(db_task) session.commit()
def store(tickets): session = Session() try: #log.info('Storing {} tickets'.format(len(tickets))) for ticket in tickets: changes = changeset(session.merge(ticket)) changes.pop("search_date_time", None) if changes: log.info('{} updated {} '.format(ticket, ' '.join(['{}(old:{} new:{} {:+.2f})'.format(k, w[0], w[1], w[1]/w[0]*100-100) for k, w in changes.items()]))) session.commit() except Exception: log.exception('Exception') session.rollback() finally: session.close()
def merge_task(self, task): session = Session() session.merge(task) session.commit()
def merge_task(self, task): session = Session() ret = session.merge(task) session.commit() session.close() return ret
def merge_task(self, task): session = Session() ret = session.merge(task) session.commit() return ret