# #Copyright (c) 2018 Jie Zheng # import sys from e3net.rpc import protos_base sys.path += protos_base.__path__ from e3net.rpc.grpc_server import publish_rpc_service from e3net.rpc.protos_base import ether_service_pb2 from e3net.rpc.protos_base import ether_service_pb2_grpc from e3net.rpc.protos_base import common_pb2 class ether_service_agent_service(ether_service_pb2_grpc.ether_serviceServicer ): def rpc_push_ether_services(self, request_iterator, context): services = list() for _service in request_iterator: services.append(_service) print('pushed service list:', services) return common_pb2.null() publish_rpc_service(ether_service_pb2_grpc.add_ether_serviceServicer_to_server, ether_service_agent_service)
# #Copyright (c) 2018 Jie Zheng # import sys from e3net.rpc import protos_base sys.path += protos_base.__path__ from e3net.rpc.grpc_server import publish_rpc_service from e3net.rpc.protos_base import label_distribution_pb2 from e3net.rpc.protos_base import label_distribution_pb2_grpc from e3net.rpc.protos_base import common_pb2 class label_distribution_service( label_distribution_pb2_grpc.label_distributionServicer): def rpc_deposit_labels(self, request_iterator, context): pass def rpc_withdraw_labels(self, request_iterator, context): pass def rpc_pull_labels(self, request_iterator, context): for _label_request in request_iterator: pass publish_rpc_service( label_distribution_pb2_grpc.add_label_distributionServicer_to_server, label_distribution_service)
def rpc_register_vswitch_lanzone(self, request, context): create_spec = dict() create_spec['name'] = request.name create_spec['zone_type'] = request.zone_type create_spec['min_vlan'] = request.min_vlan create_spec['max_vlan'] = request.max_vlan lanzone = invt_register_vswitch_lan_zone(create_spec, user_sync=True) return to_vswitch_lanzone_pb2(lanzone) def rpc_unregister_vswitch_lanzone(self, request, context): invt_unregister_vswitch_lan_zone(request.uuid, user_sync=True) return common_pb2.null() def rpc_update_vswitch_lanzone(self, request, context): lanzone_uuid = request.id change_spec = dict() if request.zone_type != '': change_spec['zone_type'] = request.zone_type if request.min_vlan != 0: change_spec['min_vlan'] = request.min_vlan if request.max_vlan != 0: change_spec['max_vlan'] = request.max_vlan invt_update_vswitch_lan_zone(lanzone_uuid, change_spec, user_sync=True) return common_pb2.null() publish_rpc_service( vswitch_lanzone_pb2_grpc.add_vswitch_lanzoneServicer_to_server, vswitch_lanzone_service)
def rpc_unregister_vswitch_host(self, request, context): invt_unregister_vswitch_host(request.uuid, user_sync = True) return common_pb2.null() def rpc_update_vswitch_host(self, request, context): uuid = request.id change_spec = dict() if request.host_status != '': change_spec['host_status'] = request.host_status if request.description != '': change_spec['description'] = request.description if request.name != '': change_spec['name'] = request.name if request.host_ip != '': change_spec['host_ip'] = request.host_ip invt_update_vswitch_host(uuid, change_spec, user_sync = True) return common_pb2.null() publish_rpc_service(vswitch_host_pb2_grpc.add_vswitch_hostServicer_to_server, vswitch_host_service) if __name__ == '__main__': from e3net.common.e3config import add_config_file from e3net.common.e3config import load_configs from e3net.rpc.grpc_server import grpc_server_init add_config_file('/etc/e3net/e3vswitch.ini') load_configs() grpc_server_init() import time time.sleep(1000)
def rpc_register_vswitch_interface(self, request, context): create_spec = dict() create_spec['host_id'] = request.host_id create_spec['dev_address'] = request.dev_address create_spec['lanzone_id'] = request.lanzone_id if request.interface_type != '': create_spec['interface_type'] = request.interface_type if request.interface_status != '': create_spec['interface_status'] = request.interface_status iface = invt_register_vswitch_interface(create_spec, user_sync = True) return to_vswitch_interface_pb2(iface) def rpc_unregister_vswitch_interface(self, request, context): invt_unregister_vswitch_interface(request.uuid, user_sync = True) return common_pb2.null() def rpc_update_vswitch_interface(self, request, context): iface_uuid = request.id change_spec = dict() #host_id and dev_address are not allowed to be changed if request.interface_status != '': change_spec['interface_status'] = request.interface_status if request.interface_type != '': change_spec['interface_type'] = request.interface_type if request.lanzone_id != '': change_spec['lanzone_id'] =request.lanzone_id invt_update_vswitch_interface(iface_uuid, change_spec, user_sync = True) return common_pb2.null() publish_rpc_service(vswitch_interface_pb2_grpc.add_vswitch_interfaceServicer_to_server, vswitch_interface_service)
edge_pb2.interface0 = edge.interface0 edge_pb2.interface1 = edge.interface1 edge_pb2.service_id = edge.service_id return edge_pb2 class topology_edge_service(topology_edge_pb2_grpc.topology_edgeServicer): def rpc_get_topology_edge(self, request, context): edge = invt_get_vswitch_topology_edge(request.uuid_or_service_id) return to_topology_edge_pb2(edge) def rpc_list_topology_edges(self, request_iterator, context): edges = invt_list_vswitch_topology_edges() empty_key_list = True raw_edges = dict() for key in request_iterator: empty_key_list = False if key.per_uuid: raw_edges[key.uuid_or_service_id] = \ invt_get_vswitch_topology_edge(key.uuid_or_service_id) else: for _edge_id in edges: _edge = edges[_edge_id] if _edge.service_id == key.uuid_or_service_id: raw_edges[_edge_id] = _edge _raw_edges = raw_edges if not empty_key_list else edges for _edge_id in _raw_edges: yield to_topology_edge_pb2(_raw_edges[_edge_id]) publish_rpc_service(topology_edge_pb2_grpc.add_topology_edgeServicer_to_server, topology_edge_service)