예제 #1
0
파일: routes.py 프로젝트: victor051/eNMS
def add_jobs_to_workflow(workflow_id: int) -> Dict[str, Any]:
    workflow = fetch("Workflow", id=workflow_id)
    jobs = objectify("Job", request.form["add_jobs"])
    for job in jobs:
        job.workflows.append(workflow)
    now = str(datetime.now())
    workflow.last_modified = now
    db.session.commit()
    return {"jobs": [job.serialized for job in jobs], "update_time": now}
예제 #2
0
 def update(self, **kwargs: Any) -> None:
     serial = rel.get(self.__tablename__, rel["Service"])
     for property, value in kwargs.items():
         property_type = property_types.get(property, None)
         if property in serial:
             value = fetch(serial[property], id=value)
         elif property[:-1] in serial:
             value = objectify(serial[property[:-1]], value)
         elif property in boolean_properties:
             value = kwargs[property] not in (None, False)
         elif "regex" in property:
             value = property in kwargs
         elif property_type == "dict" and type(value) == str:
             value = loads(value) if value else {}
         elif property_type in ["float", "int"]:
             default_value = getattr(self.__table__.c, property).default
             if default_value and not value:
                 value = default_value.arg
             value = {"float": float, "int": int}[property_type](value or 0)
         setattr(self, property, value)
예제 #3
0
def save_pool_objects(pool_id: int) -> dict:
    pool = fetch("Pool", id=pool_id)
    pool.devices = objectify("Device", request.form["devices"])
    pool.links = objectify("Link", request.form["links"])
    db.session.commit()
    return pool.serialized
예제 #4
0
def save_device_jobs(device_id: int) -> bool:
    fetch("Device", id=device_id).jobs = objectify("Job", request.form["jobs"])
    db.session.commit()
    return True