def get(self): rightful_keys = ( 'id', 'title', 'description', 'inventory_version', 'create_time', 'update_time', 'create_user', 'status', 'type', 'page', 'page_size', ) uri_kwargs = take_out_unrightful_arguments(rightful_keys, self.url_arguments) page = int(uri_kwargs.pop("page", 1)) page_size = int(uri_kwargs.pop("page_size", 5)) with session_scope() as ss: publish_plan_query = ss.query(PublishPlan).filter_by(**uri_kwargs).filter(PublishPlan.status != 7).order_by( desc(PublishPlan.create_time)) total_count = publish_plan_query.count() publish_plan_list = publish_plan_query[(page - 1) * page_size:page * page_size] res = [plan.to_dict() for plan in publish_plan_list] self.render_json_response(code=200, msg="OK", total_count=total_count, res=res)
def put(self): res = {} rightful_keys = ( 'id', 'step', 'title', 'note', 'action', 'status', ) body_kwargs = take_out_unrightful_arguments(rightful_keys, self.body_arguments) id_ = body_kwargs.pop('id', None) if id_ is None: raise HTTPError(status_code=400, reason='Missing argument "id"') with session_scope() as ss: q = ss.query(PublishPattern).filter_by(id=id_) q.update(body_kwargs) db_res = q.one_or_none() if db_res is not None: res = db_res.to_dict() audit_log(self, description='更新发版步骤', resource_type=4, resource_id=id_) self.render_json_response(code=200, res=res)
def get(self): # take args rightful_keys = ('id', 'create_time', 'update_time', 'user_id', 'resource_type', 'resource_id', 'description', 'visible', 'method', 'path', 'fullpath', 'body', 'page', 'page_size', 'order_by', 'desc', 'between_time', 'return_resource') uri_kwargs = take_out_unrightful_arguments(rightful_keys, self.url_arguments) page = int(uri_kwargs.pop("page", 1)) page_size = int(uri_kwargs.pop("page_size", 15)) order_by = uri_kwargs.pop('order_by', None) try: desc_ = int(uri_kwargs.pop('desc', 0)) except ValueError: desc_ = 0 try: return_resource = int(uri_kwargs.pop('return_resource', 0)) except ValueError: return_resource = 0 between_time = uri_kwargs.pop('between_time', None) if between_time is not None: uri_kwargs.pop('create_time', None) between_time = between_time.split(',') if len(between_time) < 2: self.render_json_response(code=400, msg='between_time need 2 arguments', res=[]) with session_scope() as ss: # join sql q = ss.query(AuditLog).filter_by(**uri_kwargs) if between_time: q = q.filter( AuditLog.create_time.between(between_time[0], between_time[1])) if order_by is not None: if desc_: order_by = desc(order_by) q = q.order_by(order_by) total_count = q.count() res = pagination(q, page, page_size) res = [r.to_dict(return_resource) for r in res] return self.render_json_response(code=200, msg='ok', total_count=total_count, res=res)
def put(self): res = {} rightful_keys = ( 'id', 'publish_pattern_id', 'publish_host_id', 'status', ) body_kwargs = take_out_unrightful_arguments(rightful_keys, self.body_arguments) _id = body_kwargs.pop('id', None) pattern_id = body_kwargs.pop('publish_pattern_id', None) host_id = body_kwargs.pop('publish_host_id', None) if (_id is None) and (pattern_id is None or host_id is None): raise HTTPError( status_code=400, reason= '"id" or ("publish_pattern_id" and "publish_host_id") is required' ) with session_scope() as ss: if _id is not None: q = ss.query(PublishPatternHost).filter_by( id=_id).with_for_update() else: q = ss.query(PublishPatternHost).filter_by( publish_pattern_id=pattern_id, publish_host_id=host_id) pattern_host = q.one_or_none() if pattern_host is None: raise HTTPError(status_code=400, reason='Id not found: %d' % _id) q.update(body_kwargs) ss.flush() new_status = body_kwargs.pop('status', None) if new_status is not None: for t in pattern_host.publish_pattern_tasks: t.status = new_status ss.flush() upgrade_pattern_status(ss, pattern_host.publish_pattern_id) res = pattern_host.to_dict() self.render_json_response(code=200, res=res)
def get(self): res = [] rightful_keys = ( 'id', 'create_time', 'update_time', 'publish_plan_id', 'step', 'title', 'note', 'action', 'status', 'page', 'page_size', 'order_by', 'desc', ) uri_kwargs = take_out_unrightful_arguments(rightful_keys, self.url_arguments) page = int(uri_kwargs.pop("page", 1)) page_size = int(uri_kwargs.pop("page_size", 15)) order_by = uri_kwargs.pop("order_by", None) try: desc_ = int(uri_kwargs.pop('desc', 0)) except ValueError: desc_ = 0 with session_scope() as ss: q = ss.query(PublishPattern).filter_by(**uri_kwargs) if order_by is not None: if desc_: order_by = desc(order_by) q = q.order_by(order_by) total_count = q.count() db_res = pagination(q, page, page_size) for pattern in db_res: r = pattern.to_dict() r['publish_application_hosts'] = get_publish_hosts(pattern) res.append(r) self.render_json_response(code=200, msg='ok', total_count=total_count, res=res)
def get(self): rightful_keys = ( 'id', 'create_time', 'update_time', 'page', 'page_size', 'order_by', 'desc', 'name', 'status', 'return_resource', 'is_delete', 'create_user_id', ) uri_kwargs = take_out_unrightful_arguments(rightful_keys, self.url_arguments) page = int(uri_kwargs.pop("page", 1)) page_size = int(uri_kwargs.pop("page_size", 15)) order_by = uri_kwargs.pop("order_by", None) try: desc_ = int(uri_kwargs.pop('desc', 0)) except ValueError: desc_ = 0 try: _return_resource = int(uri_kwargs.pop('return_resource', 0)) except ValueError: _return_resource = 0 with session_scope() as ss: q = ss.query(PublishProject).filter_by(**uri_kwargs) if order_by is not None: if desc_: order_by = desc(order_by) q = q.order_by(order_by) total_count = q.count() db_res = pagination(q, page, page_size) res = [r.to_dict(_return_resource) for r in db_res] self.render_json_response(code=200, total_count=total_count, res=res)