def configure_poller(): parameters = get_one('Parameters') remote_git = request.form['remote_git_repository'] if parameters.git_repository_configurations != remote_git: Repo.clone_from(remote_git, app.path / 'git' / 'configurations') parameters.git_repository_configurations = remote_git service = fetch('Service', name='configuration_backup') task = fetch('Task', name='configuration_backup') service.devices = objectify('Device', request.form.get('devices', '')) service.pools = objectify('Pool', request.form.get('pools', '')) task.frequency = request.form['polling_frequency'] db.session.commit() task.reschedule() return True
def add_jobs_to_workflow(workflow_id): workflow = fetch('Workflow', id=workflow_id) jobs = objectify('Job', request.form['add_jobs']) for job in jobs: job.workflows.append(workflow) db.session.commit() return [job.serialized for job in jobs]
def add_jobs_to_workflow(workflow_id: int) -> List[dict]: workflow = fetch("Workflow", id=workflow_id) jobs = objectify("Job", request.form["add_jobs"]) for job in jobs: job.workflows.append(workflow) workflow.last_modified = str(datetime.now()) db.session.commit() return [job.serialized for job in jobs]
def update(self, **kwargs): 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 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 migration_import(): name = request.form['name'] for cls in request.form.getlist('export'): path = app.path / 'migrations' / 'import_export' / name / f'{cls}.yaml' with open(path, 'r') as migration_file: for obj_data in load(migration_file): cls_name = obj_data.pop('type') if cls == 'Service' else cls obj = {} for property, value in obj_data.items(): if property not in import_properties[cls]: continue elif property in serialization_properties: model = serialization_properties[property] obj[property] = fetch(model, id=value) elif property[:-1] in serialization_properties: model = serialization_properties[property[:-1]] obj[property] = objectify(model, value) else: obj[property] = value factory(cls_name, **obj) return jsonify(True)
def save_pool_objects(device_id: int) -> dict: pool = fetch("Pool", id=device_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
def save_pool_objects(pool_id): pool = fetch('Pool', id=pool_id) pool.devices = objectify('Device', request.form.getlist('devices')) pool.links = objectify('Link', request.form.getlist('links')) db.session.commit() return jsonify(pool.name)
def save_pool_objects(id): pool = fetch('Pool', id=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(id): fetch('Device', id=id).jobs = objectify('Job', request.form['jobs']) db.session.commit() return True
def save_log_rule(): data = request.form.to_dict() data['jobs'] = objectify('Job', request.form.getlist('jobs')) log_rule = factory('LogRule', **data) db.session.commit() return jsonify(log_rule.serialized)