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}
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)
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
def save_device_jobs(device_id: int) -> bool: fetch("Device", id=device_id).jobs = objectify("Job", request.form["jobs"]) db.session.commit() return True