grpc updates to provide link data within a session query
This commit is contained in:
parent
7aed803aae
commit
b573eb641e
2 changed files with 95 additions and 3 deletions
|
@ -13,6 +13,69 @@ from core.misc import nodeutils
|
||||||
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
|
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
|
||||||
|
|
||||||
|
|
||||||
|
def convert_value(value):
|
||||||
|
if value is None:
|
||||||
|
return value
|
||||||
|
else:
|
||||||
|
return str(value)
|
||||||
|
|
||||||
|
|
||||||
|
def update_proto(obj, **kwargs):
|
||||||
|
for key in kwargs:
|
||||||
|
value = kwargs[key]
|
||||||
|
if value is not None:
|
||||||
|
logging.info("setting proto key(%s) value(%s)", key, value)
|
||||||
|
setattr(obj, key, value)
|
||||||
|
|
||||||
|
|
||||||
|
def convert_link(session, link_data, link):
|
||||||
|
if link_data.interface1_id is not None:
|
||||||
|
node = session.get_object(link_data.node1_id)
|
||||||
|
interface = node.netif(link_data.interface1_id)
|
||||||
|
link.interface_one.id = link_data.interface1_id
|
||||||
|
link.interface_one.name = interface.name
|
||||||
|
update_proto(
|
||||||
|
link.interface_one,
|
||||||
|
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)
|
||||||
|
link.interface_two.id = link_data.interface2_id
|
||||||
|
link.interface_two.name = interface.name
|
||||||
|
update_proto(
|
||||||
|
link.interface_two,
|
||||||
|
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
|
||||||
|
)
|
||||||
|
|
||||||
|
link.node_one = link_data.node1_id
|
||||||
|
link.node_two = link_data.node2_id
|
||||||
|
link.type = link_data.link_type
|
||||||
|
update_proto(
|
||||||
|
link.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
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
||||||
def __init__(self, coreemu):
|
def __init__(self, coreemu):
|
||||||
super(CoreApiServer, self).__init__()
|
super(CoreApiServer, self).__init__()
|
||||||
|
@ -72,9 +135,9 @@ class CoreApiServer(core_pb2_grpc.CoreApiServicer):
|
||||||
|
|
||||||
links_data = node.all_link_data(0)
|
links_data = node.all_link_data(0)
|
||||||
for link_data in links_data:
|
for link_data in links_data:
|
||||||
pass
|
link = response.links.add()
|
||||||
# link = core_utils.convert_link(session, link_data)
|
convert_link(session, link_data, link)
|
||||||
# links.append(link)
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,36 @@ message Node {
|
||||||
}
|
}
|
||||||
|
|
||||||
message Link {
|
message Link {
|
||||||
|
int32 node_one = 1;
|
||||||
|
int32 node_two = 2;
|
||||||
|
int32 type = 3;
|
||||||
|
Interface interface_one = 4;
|
||||||
|
Interface interface_two = 5;
|
||||||
|
LinkOptions options = 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
message LinkOptions {
|
||||||
|
string opaque = 1;
|
||||||
|
float jitter = 2;
|
||||||
|
string key = 3;
|
||||||
|
float mburst = 4;
|
||||||
|
float mer = 5;
|
||||||
|
float per = 6;
|
||||||
|
float bandwidth = 7;
|
||||||
|
float burst = 8;
|
||||||
|
float delay = 9;
|
||||||
|
float dup = 10;
|
||||||
|
bool unidirectional = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
message Interface {
|
||||||
|
int32 id = 1;
|
||||||
|
string name = 2;
|
||||||
|
string mac = 3;
|
||||||
|
string ip4 = 4;
|
||||||
|
int32 ip4mask = 5;
|
||||||
|
string ip6 = 6;
|
||||||
|
int32 ip6mask = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Position {
|
message Position {
|
||||||
|
|
Loading…
Add table
Reference in a new issue