Exemple #1
0
    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)
Exemple #2
0
    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()
Exemple #3
0
    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()
Exemple #4
0
    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 = ""
Exemple #5
0
    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)
Exemple #6
0
 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)
Exemple #7
0
 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
Exemple #8
0
 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")
Exemple #9
0
    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
Exemple #10
0
 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
Exemple #11
0
    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 = ""
Exemple #12
0
    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
Exemple #13
0
    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
Exemple #14
0
    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
Exemple #15
0
    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
Exemple #16
0
    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
Exemple #17
0
    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
Exemple #18
0
    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
Exemple #19
0
    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"]]
Exemple #20
0
 def __init__(self, _dict):
     self.name = _dict["name"]
     self.tables = [Database.to_cls(ReleaseTable, t) for t in _dict["table"]]
Exemple #21
0
 def edit(submit):
     release = Database.to_cls(Release, submit)
     db.session.commit()
     return release
Exemple #22
0
 def edit(submit):
     purchase = Database.to_cls(Purchase, submit)
     db.session.commit()
Exemple #23
0
 def edit(submit):
     purchase = Database.to_cls(Purchase, submit)
     db.session.commit()
Exemple #24
0
 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
Exemple #25
0
 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()
Exemple #26
0
 def edit(_dict):
     proj = Database.to_cls(Project, _dict)
     ProjectHistory.add(proj.id, PROJECT.EDIT_PROJ, _dict)
     db.session.commit()
     return True
Exemple #27
0
 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()