def get_filtered_objects(name): filter = get_obj(Filter, name=name) objects = filter.filter_objects() return jsonify(objects)
def delete_object(obj_type, name): cls = Node if obj_type == 'node' else Link obj = get_obj(cls, name=name) db.session.delete(obj) db.session.commit() return jsonify({})
def delete_user(name): user = get_obj(User, name=name) db.session.delete(user) db.session.commit() return jsonify({})
def get_filter(name): return jsonify(get_obj(Filter, name=name).get_properties())
def view(view_type): add_node_form = AddNode(request.form) add_link_form = AddLink(request.form) view_options_form = ViewOptionsForm(request.form) google_earth_form = GoogleEarthForm(request.form) scheduling_form = SchedulingForm(request.form) scheduling_form.scripts.choices = Script.choices() scheduling_form.workflows.choices = Workflow.choices() labels = {'node': 'name', 'link': 'name'} if 'script' in request.form: data = dict(request.form) selection = map(int, session['selection']) scripts = request.form.getlist('scripts') workflows = request.form.getlist('workflows') data['scripts'] = [get_obj(Script, name=name) for name in scripts] data['workflows'] = [ get_obj(Workflow, name=name) for name in workflows ] data['nodes'] = [get_obj(Node, id=id) for id in selection] data['user'] = current_user task = Task(**data) db.session.add(task) db.session.commit() return redirect(url_for('tasks_blueprint.task_management')) elif 'view_options' in request.form: # update labels labels = { 'node': request.form['node_label'], 'link': request.form['link_label'] } elif 'google earth' in request.form: kml_file = Kml() for node in Node.query.all(): point = kml_file.newpoint(name=node.name) point.coords = [(node.longitude, node.latitude)] point.style = styles[node.subtype] point.style.labelstyle.scale = request.form['label_size'] for link in Link.query.all(): line = kml_file.newlinestring(name=link.name) line.coords = [(link.source.longitude, link.source.latitude), (link.destination.longitude, link.destination.latitude)] line.style = styles[link.type] line.style.linestyle.width = request.form['line_width'] filepath = join(current_app.ge_path, request.form['name'] + '.kmz') kml_file.save(filepath) # for the sake of better performances, the view defaults to markercluster # if there are more than 2000 nodes view = 'leaflet' if len(Node.query.all()) < 2000 else 'markercluster' if 'view' in request.form: view = request.form['view'] # we clean the session's selected nodes session['selection'] = [] # name to id name_to_id = {node.name: id for id, node in enumerate(Node.query.all())} return render_template( '{}_view.html'.format(view_type), filters=Filter.query.all(), view=view, scheduling_form=scheduling_form, view_options_form=view_options_form, google_earth_form=google_earth_form, add_node_form=add_node_form, add_link_form=add_link_form, labels=labels, names=pretty_names, subtypes=node_subtypes, name_to_id=name_to_id, node_table={ obj: OrderedDict([(property, getattr(obj, property)) for property in type_to_public_properties[obj.type]]) for obj in Node.query.all() }, link_table={ obj: OrderedDict([(property, getattr(obj, property)) for property in type_to_public_properties[obj.type]]) for obj in Link.query.all() })
def get_logs(name): node = get_obj(Node, name=name) node_logs = [ l.content for l in Log.query.all() if l.source == node.ip_address ] return jsonify('\n'.join(node_logs))
def show_logs(name): task = get_obj(Task, name=name) return jsonify(str_dict(task.logs))
def delete_object(name): script = get_obj(Script, name=name) db.session.delete(script) db.session.commit() return jsonify({})
def filter_pool_objects(name): pool = get_obj(Pool, name=name) objects = pool.filter_objects() return jsonify(objects)
def delete_pool(name): pool = get_obj(Pool, name=name) db.session.delete(pool) db.session.commit() return jsonify({})
def get_pool_objects(name): pool = get_obj(Pool, name=name) nodes = str(pool.nodes).replace(', ', ',')[1:-1].split(',') links = str(pool.links).replace(', ', ',')[1:-1].split(',') return jsonify({'nodes': nodes, 'links': links})
def get_pool(name): return jsonify(get_obj(Pool, name=name).get_properties())
def delete_log(log_id): log = get_obj(Log, id=log_id) db.session.delete(log) db.session.commit() return jsonify({})
def get_compare(name, v1, v2, n1, n2, s1, s2): task = get_obj(Task, name=name) res1 = str_dict(task.logs[v1][s1][n1]).splitlines() res2 = str_dict(task.logs[v2][s2][n2]).splitlines() return jsonify('\n'.join(ndiff(res1, res2)), '\n'.join(unified_diff(res1, res2)))
def delete_workflow(name): workflow = get_obj(Workflow, name=name) db.session.delete(workflow) db.session.commit() return jsonify({})