def put(self, did): submit = self.request() indexs = submit.pop("indexs") if submit.__contains__("indexs") else None fields = submit.pop("fields") if submit.__contains__("fields") else None submit["id"] = did doc = Doc.edit(submit, auto_commit=False) if indexs != None: doc.indexs = [Database.to_cls(DocIndex, index) for index in indexs] if fields != None: doc.fields = [Database.to_cls(DocField, field) for field in fields] return self.success(DOC.PUT, Doc, submit)
def post(self): submit = self.request() indexs = submit.pop("indexs") if submit.__contains__("indexs") else [] fields = submit.pop("fields") if submit.__contains__("fields") else [] submit["create_time"] = datetime.now() submit["create_uid"] = session[USER_SESSION]["uid"] submit["modify_time"] = datetime.now() submit["modify_uid"] = session[USER_SESSION]["uid"] doc = Doc.add(submit, auto_commit=False) doc.indexs = [Database.to_cls(DocIndex, index) for index in indexs] doc.fields = [Database.to_cls(DocField, field) for field in fields] db.session.commit() return self.succ()
def __init__(self, submit): goods, supplier, imgs, contract = submit["goods"], submit["supplier"], submit["imgs"], submit["contract"] if not submit.__contains__("id"): self.cur_approval_type = PURCHASE.FLOW_ONE self.apply_time = datetime.now() self.apply_businessCategory = session[USER_SESSION]["businessCategory"] self.apply_uid = session[USER_SESSION]["uid"] self.goods = [Database.to_cls(PurchaseGoods, g) for g in goods] self.supplier = supplier if isinstance(imgs, list): self.imgs = [Database.to_cls(PurchaseImg, img) for img in imgs] if contract: self.contract = contract self.use = submit["use"] if submit.__contains__("reson"): self.reson = submit["reson"] else: self.reson = ""
def put(self, did): submit = self.request() indexs = submit.pop("indexs") if submit.__contains__( "indexs") else None fields = submit.pop("fields") if submit.__contains__( "fields") else None submit["id"] = did doc = Doc.edit(submit, auto_commit=False) if indexs != None: doc.indexs = [Database.to_cls(DocIndex, index) for index in indexs] if fields != None: doc.fields = [Database.to_cls(DocField, field) for field in fields] return self.success(DOC.PUT, Doc, submit)
def __init__(self, _dict): for k, v in _dict.items(): if "release_time" == k: setattr(self, k, datetime.strptime(v, "%Y-%m-%d %H:%M")) elif "service" == k: self.service = Database.to_cls(ReleaseService, v) else: setattr(self, k, v)
def edit(cls, _dicts, auto_commit=True): if not isinstance(_dicts, list): _dicts = [_dicts] results = [Database.to_cls(cls, _dict) for _dict in _dicts] if auto_commit: db.session.commit() else: db.session.flush() return results[0] if len(results) == 1 else results
def __init__(self, _dict): for k, v in _dict.items(): if k == "members": self.members = [Database.to_cls(ProjectScheduleMember, m) for m in _dict["members"]] elif "time" in k: setattr(self, k, datetime.strptime(v, "%Y-%m-%d")) else: setattr(self, k, v) self.update_status_time = datetime.now().strftime("%Y-%m-%d")
def __update(submit): client = Client(app.config["SSH_IDC_HOST"], app.config["SSH_IDC_USER"], app.config["SSH_IDC_PASSWORD"]) def exec_script(path): info = client.exec_script(path, submit["ip"], False) return json.loads(info.replace("u'", "'").replace("'", "\"")) if not submit.__contains__("ip"): # 更新描述信息 idc_host = Database.to_cls(Idc_host, submit) return idc_host submit["ssh_info"] = exec_script( "/root/csfscript/host_info/get_ssh_info.py" )["host_ssh_info"].replace("\n", " ").replace(" ", " ") submit["system_time"] = datetime.strptime( exec_script("/root/csfscript/host_info/get_system_time.py") ["system_time"], "%Y-%m-%d %I:%M:%S %p") submit.update( exec_script("/root/csfscript/host_info/get_host_info.py")) host_interfaces = submit.pop("host_interfaces") host_disks = submit.pop("host_disks") for key in submit: if isinstance(submit[key], list): submit[key] = ",".join(submit[key]) idc_host = Database.to_cls(Idc_host, submit) idc_host.ps_info = [ Database.to_cls(Idc_host_ps, _dict) for _dict in exec_script( "/root/csfscript/host_info/get_ps_info.py") ] Idc_host_ps.query.filter(Idc_host_ps.idc_host_id == None).delete() idc_host.host_interfaces = [ Database.to_cls(Idc_host_interface, _dict) for _dict in host_interfaces ] idc_host.host_disks = [ Database.to_cls(Idc_host_disk, _dict) for _dict in host_disks ] return idc_host
def add_log(rid, log_path): with open(log_path) as log: __dict = {"content": log.read()} release = Release.query.filter(Release.id == rid).one() query_log = ReleaseLog.query.filter(ReleaseLog.release_id == rid) if query_log.count(): __dict["id"] = query_log.one().id release.log = Database.to_cls(ReleaseLog, __dict) db.session.commit() return True
def __init__(self, submit): goods, supplier, imgs, contract = submit["goods"], submit[ "supplier"], submit["imgs"], submit["contract"] if not submit.__contains__("id"): self.cur_approval_type = PURCHASE.FLOW_ONE self.apply_time = datetime.now() self.apply_businessCategory = session[USER_SESSION][ "businessCategory"] self.apply_uid = session[USER_SESSION]["uid"] self.goods = [Database.to_cls(PurchaseGoods, g) for g in goods] self.supplier = supplier if isinstance(imgs, list): self.imgs = [Database.to_cls(PurchaseImg, img) for img in imgs] if contract: self.contract = contract self.use = submit["use"] if submit.__contains__("reson"): self.reson = submit["reson"] else: self.reson = ""
def edit(cls, _dicts, auto_commit=True): if Stock.query.filter(Stock.no == _dicts["no"]).count(): raise ExceptionEx("库存编号已存在") stock = Database.to_cls(Stock, _dicts) if auto_commit: db.session.commit() else: db.session.flush() return stock
def __submit(self): submit = self.request() if not submit.__contains__("supplier_id"): raise ExceptionEx("供应商不能为空") submit["supplier"] = Supplier.query.filter(Supplier.id == submit["supplier_id"]).one() if submit.__contains__("contract"): submit["contract"] = Database.to_cls(Contract, submit["contract"]) else: submit["contract"] = None return submit
def __update(submit): client = Client(app.config["SSH_IDC_HOST"], app.config["SSH_IDC_USER"], app.config["SSH_IDC_PASSWORD"]) def exec_script(path): info = client.exec_script(path, submit["ip"], False) return json.loads(info.replace("u'", "'").replace("'", "\"")) if not submit.__contains__("ip"): # 更新描述信息 idc_host = Database.to_cls(Idc_host, submit) return idc_host submit["ssh_info"] = exec_script("/root/csfscript/host_info/get_ssh_info.py")["host_ssh_info"].replace("\n", " ").replace( " ", " ") submit["system_time"] = datetime.strptime( exec_script("/root/csfscript/host_info/get_system_time.py")["system_time"], "%Y-%m-%d %I:%M:%S %p" ) submit.update(exec_script("/root/csfscript/host_info/get_host_info.py")) host_interfaces = submit.pop("host_interfaces") host_disks = submit.pop("host_disks") for key in submit: if isinstance(submit[key], list): submit[key] = ",".join(submit[key]) idc_host = Database.to_cls(Idc_host, submit) idc_host.ps_info = [Database.to_cls(Idc_host_ps, _dict) for _dict in exec_script("/root/csfscript/host_info/get_ps_info.py")] Idc_host_ps.query.filter(Idc_host_ps.idc_host_id == None).delete() idc_host.host_interfaces = [Database.to_cls(Idc_host_interface, _dict) for _dict in host_interfaces] idc_host.host_disks = [Database.to_cls(Idc_host_disk, _dict) for _dict in host_disks] return idc_host
def add(cls, _dicts, auto_commit=True): idc_host = Idc_host.query.filter(Idc_host.id == _dicts).one() client = Client(app.config["SSH_IDC_HOST"], app.config["SSH_IDC_USER"], app.config["SSH_IDC_PASSWORD"]) def exec_script(path): info = client.exec_script(path, idc_host.ip, False) return json.loads(info.replace("u'", "'").replace("'", "\"")) idc_host.ps_info = [Database.to_cls(Idc_host_ps, _dict) for _dict in exec_script("/root/csfscript/host_info/get_ps_info.py")] Idc_host_ps.query.filter(Idc_host_ps.idc_host_id == None).delete() db.session.commit() return True
def add(submit): from bmp.models.user import User user = User.query.filter(User.uid == session[USER_SESSION]["uid"]).one() release = Database.to_cls(Release, submit) release.approvals = [] release.apply_uid = user.uid if user.groups: release.apply_group = user.groups[0].name else: release.apply_group = DEFAULT_GROUP.GUEST release.apply_time = datetime.now() db.session.add(release) db.session.commit() return release
def add(cls, _dicts, auto_commit=True): idc_host = Idc_host.query.filter(Idc_host.id == _dicts).one() client = Client(app.config["SSH_IDC_HOST"], app.config["SSH_IDC_USER"], app.config["SSH_IDC_PASSWORD"]) def exec_script(path): info = client.exec_script(path, idc_host.ip, False) return json.loads(info.replace("u'", "'").replace("'", "\"")) idc_host.ps_info = [ Database.to_cls(Idc_host_ps, _dict) for _dict in exec_script( "/root/csfscript/host_info/get_ps_info.py") ] Idc_host_ps.query.filter(Idc_host_ps.idc_host_id == None).delete() db.session.commit() return True
def __init__(self, _dict): self.name = _dict["name"] self.type = _dict["type"] databases = [d for d in _dict["database"].split("|") if d != ""] tables = [t for t in _dict["table"].split("|") if t != ""] if len(databases) != len(tables): raise ExceptionEx("表格式错误") def format_database(database, table): _database = {"name": database.strip()} def format_tables(table): return [{"name": t.strip()} for t in table.split(",")] _database["table"] = [t for t in format_tables(table)] return _database _dict["database"] = [format_database(databases[i], tables[i]) for i in range(0, len(databases))] self.databases = [Database.to_cls(ReleaseDatabase, t) for t in _dict["database"]]
def __init__(self, _dict): self.name = _dict["name"] self.tables = [Database.to_cls(ReleaseTable, t) for t in _dict["table"]]
def edit(submit): release = Database.to_cls(Release, submit) db.session.commit() return release
def edit(submit): purchase = Database.to_cls(Purchase, submit) db.session.commit()
def edit(_dict): ps = Database.to_cls(ProjectSchedule, _dict) ProjectHistory.add(ps.project_id, PROJECT.EDIT_SCHEDULE(ps.type), _dict) db.session.commit() return True
def edit_members(_dict): ps = ProjectSchedule.query.filter(ProjectSchedule.id == _dict["schedule_id"]).one() ps.members = [Database.to_cls(ProjectScheduleMember, m) for m in _dict["members"]] ProjectHistory.add(ps.project_id, PROJECT.EDIT_MEMBER(ps.type), _dict) db.session.commit()
def edit(_dict): proj = Database.to_cls(Project, _dict) ProjectHistory.add(proj.id, PROJECT.EDIT_PROJ, _dict) db.session.commit() return True
def edit_doc(_dict): ps = Project.query.filter(Project.id == _dict["project_id"]).one() ps.docs = [Database.to_cls(ProjectDoc, d) for d in _dict["docs"]] ProjectHistory.add(ps.id, PROJECT.EDIT_DOC, _dict) db.session.commit()