Skip to content
Snippets Groups Projects
Commit 3d04f6ce authored by Janis Streib's avatar Janis Streib :owl:
Browse files

ADD: usr_netdoc middleware api

parent 379aff1c
No related branches found
No related tags found
No related merge requests found
Pipeline #271319 passed with warnings
......@@ -853,6 +853,54 @@ class NDPPort(DBObject):
self.name = name
self.module = module
@staticmethod
def get_nd_p_port_by_vlan(db, connection, vlan_id, ni_name):
res = db.execute(connection,
"""
select nd_mdl_typ_class.name as root_nd_mdl_typ_class_name, root_typ.name as root_nd_mdl_typ_name, dst.name as nd_p_port_name, root.name as root_nd_mdl_name, mod.name as base_nd_mdl_name,
nd_room.name as nd_room_name, nd_room.nr as nd_room_nr, nd_floor.nr as nd_floor_nr, nd_floor.descr as nd_floor_descr,
nd_bldg.nr as nd_bldg_nr, nd_bldg.name as nd_bldg_name from nd_dev
INNER JOIN dns_ntree on nd_dev.dns_ntree_key_nr=dns_ntree.key_nr
inner join nd_l_port on nd_dev.key_nr=nd_l_port.nd_dev_key_nr
inner join nd_vlan on nd_l_port.nd_vlan_key_nr=nd_vlan.key_nr
inner join nd_net_instnc on nd_vlan.nd_net_instnc_key_nr=nd_net_instnc.key_nr
inner join nd_l2p_port on nd_l_port.key_nr=nd_l2p_port.nd_l_port_key_nr
inner join nd_p_port src on nd_l2p_port.nd_p_port_key_nr = src.key_nr
inner join nd_p_port dst on src.nd_dest_p_port_key_nr=dst.key_nr
inner join nd_mdl mod on dst.nd_mdl_key_nr=mod.key_nr
inner join nd_mdl root on mod.nd_root_mdl_key_nr=root.key_nr
inner join nd_room on root.nd_room_key_nr=nd_room.key_nr
inner join nd_floor on nd_room.nd_floor_key_nr=nd_floor.key_nr
inner join nd_bldg on nd_room.nd_bldg_key_nr=nd_bldg.key_nr
inner join nd_mdl_typ root_typ on root.nd_mdl_typ_key_nr = root_typ.key_nr
inner join nd_mdl_typ_class on root_typ.nd_mdl_typ_class_key_nr=nd_mdl_typ_class.key_nr
where nd_net_instnc.name = {ni_name} and nd_vlan.id = {vlan_id}
""",
{'ni_name': ni_name, 'vlan_id': vlan_id})
if len(res) == 0:
return None
return [NDPPort(
**_marshal_dict(r, NDPPort),
module=NDModule(**_marshal_dict(_marshal_dict_str(r, 'base'), NDModule),
root_module=NDModule(**_marshal_dict(_marshal_dict_str(r, 'root'), NDModule),
room=NDRoom(
**_marshal_dict(r, NDRoom)),
floor=NDFloor(
**_marshal_dict(r, NDFloor)),
building=NDBuilding(
**_marshal_dict(r, NDBuilding)),
module_type=NDModuleType(
**_marshal_dict(_marshal_dict_str(r, 'root'), NDModuleType),
type_class=NDModuleTypeClass(
**_marshal_dict(_marshal_dict_str(r, 'root'),
NDModuleTypeClass)
)
)
),
)
) for r in res]
@staticmethod
def get_nd_p_port_by_dev_fqdn_and_port_name(db, connection, fqdn, port):
res = db.execute(connection,
......
from flask import Blueprint
from net_suite import app, get_git_version, ModMetaData
import requests
# we are assuming, that at the time of loading the app is initializes and the config is loaded
bb_name = 'user_nd'
user_nd = Blueprint(bb_name, __name__)
METADATA = ModMetaData(name=bb_name, mod_path=__name__, gitlab_url='https://git.scc.kit.edu/scc-net/net-suite/net-suite',
printable_name='User-Netdoc', version=get_git_version(__file__),
contact_email='dns-betrieb@scc.kit.edu', is_tool=False)
MENU = []
from . import views
from . import user_nd, METADATA
from net_suite.model import *
from net_suite import app
from net_suite.views import login_required, get_db_conn, db
import requests
from flask import render_template, request, flash, jsonify, redirect, url_for
@user_nd.route('/vlans/<ni_name>/<vlan>/ports')
@login_required
def get_dev_ports(ni_name, vlan):
return jsonify(NDPPort.get_nd_p_port_by_vlan(db, get_db_conn(), ni_name=str(ni_name), vlan_id=int(vlan)))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment