Ejemplo n.º 1
0
#
#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)
Ejemplo n.º 2
0
#
#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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)