refactoring to rest app to help breakup api code into smaller files
This commit is contained in:
parent
2593d97cab
commit
1d73f28248
12 changed files with 886 additions and 796 deletions
|
@ -1,5 +1,86 @@
|
|||
from functools import wraps
|
||||
from threading import Lock
|
||||
|
||||
from bottle import abort
|
||||
|
||||
CORE_LOCK = Lock()
|
||||
|
||||
|
||||
def synchronized(function):
|
||||
global CORE_LOCK
|
||||
|
||||
@wraps(function)
|
||||
def wrapper(*args, **kwargs):
|
||||
with CORE_LOCK:
|
||||
return function(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def convert_value(value):
|
||||
if value is None:
|
||||
return value
|
||||
else:
|
||||
return str(value)
|
||||
|
||||
|
||||
def convert_link(session, link_data):
|
||||
interface_one = None
|
||||
interface_two = None
|
||||
|
||||
if link_data.interface1_id is not None:
|
||||
node = session.get_object(link_data.node1_id)
|
||||
interface = node.netif(link_data.interface1_id)
|
||||
interface_one = {
|
||||
"id": link_data.interface1_id,
|
||||
"name": interface.name,
|
||||
"mac": convert_value(link_data.interface1_mac),
|
||||
"ip4": convert_value(link_data.interface1_ip4),
|
||||
"ip4mask": link_data.interface1_ip4_mask,
|
||||
"ip6": convert_value(link_data.interface1_ip6),
|
||||
"ip6mask": link_data.interface1_ip6_mask,
|
||||
}
|
||||
|
||||
if link_data.interface2_id is not None:
|
||||
node = session.get_object(link_data.node2_id)
|
||||
interface = node.netif(link_data.interface2_id)
|
||||
interface_two = {
|
||||
"id": link_data.interface2_id,
|
||||
"name": interface.name,
|
||||
"mac": convert_value(link_data.interface2_mac),
|
||||
"ip4": convert_value(link_data.interface2_ip4),
|
||||
"ip4mask": link_data.interface2_ip4_mask,
|
||||
"ip6": convert_value(link_data.interface2_ip6),
|
||||
"ip6mask": link_data.interface2_ip6_mask,
|
||||
}
|
||||
|
||||
return {
|
||||
"node_one": link_data.node1_id,
|
||||
"node_two": link_data.node2_id,
|
||||
"type": link_data.link_type,
|
||||
"interface_one": interface_one,
|
||||
"interface_two": interface_two,
|
||||
"options": {
|
||||
"opaque": link_data.opaque,
|
||||
"jitter": link_data.jitter,
|
||||
"key": link_data.key,
|
||||
"mburst": link_data.mburst,
|
||||
"mer": link_data.mer,
|
||||
"per": link_data.per,
|
||||
"bandwidth": link_data.bandwidth,
|
||||
"burst": link_data.burst,
|
||||
"delay": link_data.delay,
|
||||
"dup": link_data.dup,
|
||||
"unidirectional": link_data.unidirectional
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def link_data_str(link, key):
|
||||
value = link.get(key)
|
||||
if value is not None:
|
||||
link[key] = str(value)
|
||||
|
||||
|
||||
def get_session(coreemu, session_id):
|
||||
session = coreemu.sessions.get(session_id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue