Example #1
0
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
Example #2
0
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]
Example #3
0
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]
Example #4
0
 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)
Example #5
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)
Example #6
0
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)
Example #7
0
File: routes.py Project: fublu/eNMS
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
Example #8
0
File: routes.py Project: fublu/eNMS
def save_device_jobs(device_id: int) -> bool:
    fetch("Device", id=device_id).jobs = objectify("Job", request.form["jobs"])
    db.session.commit()
    return True
Example #9
0
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)
Example #10
0
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
Example #11
0
def save_device_jobs(id):
    fetch('Device', id=id).jobs = objectify('Job', request.form['jobs'])
    db.session.commit()
    return True
Example #12
0
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)