Loading manifests/nbiservice.yaml +1 −13 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ spec: - containerPort: 8762 env: - name: LOG_LEVEL value: "INFO" value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:9090"] Loading Loading @@ -83,15 +83,3 @@ spec: protocol: TCP port: 8762 targetPort: 8762 --- apiVersion: v1 kind: Service metadata: name: remote-teraflow spec: type: ExternalName externalName: nbiservice.asdf.svc.cluster.local ports: - name: ws protocol: TCP port: 8762 proto/context.proto +1 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,7 @@ message Link { string name = 2; repeated EndPointId link_endpoint_ids = 3; LinkAttributes attributes = 4; bool virtual = 5; } message LinkIdList { Loading src/e2e_orchestrator/Dockerfile +1 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ RUN python3 -m pip install -r e2e_orchestrator/requirements.txt # Add component files into working directory COPY --chown=teraflow:teraflow ./src/context/. context COPY --chown=teraflow:teraflow ./src/e2e_orchestrator/. e2e_orchestrator COPY --chown=teraflow:teraflow ./src/service/. service # Start the service ENTRYPOINT ["python", "-m", "e2e_orchestrator.service"] src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py +15 −7 Original line number Diff line number Diff line Loading @@ -15,9 +15,10 @@ import copy from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply from common.proto.context_pb2 import Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, TopologyId, Device, Topology, Context from common.proto.context_pb2 import Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, TopologyId, Device, Topology, Context, Service from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient from context.service.database.uuids.EndPoint import endpoint_get_uuid from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest from common.tools.grpc.Tools import grpc_message_to_json_string Loading @@ -37,7 +38,7 @@ METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC") context_client: ContextClient = ContextClient() service_client: ServiceClient = ServiceClient() EXT_HOST = "nbiservice.tfs-ip.svc.cluster.local" EXT_PORT = "8762" Loading @@ -51,12 +52,17 @@ def _event_received(websocket): message_json = json.loads(message) if 'link_id' in message_json: obj = Link(**message_json) if _check_policies(obj): pass link = Link(**message_json) service = Service() service.service_id = link.link_id.link_uuid service.serivice_type = 2 # Optical service.service_status = 1 # service_client.CreateService(service) websocket.send(message) elif 'link_uuid' in message_json: obj = LinkId(**message_json) else: topology_details = TopologyDetails(**message_json) Loading @@ -72,9 +78,11 @@ def _event_received(websocket): context_client.SetTopology(topology) for device in topology_details.devices: LOGGER.info('Setting Device: {}'.format(device)) context_client.SetDevice(device) for link in topology_details.links: LOGGER.info('Setting Link: {}'.format(link)) context_client.SetLink(link) Loading src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py +22 −6 Original line number Diff line number Diff line Loading @@ -20,11 +20,17 @@ from common.tools.grpc.Tools import grpc_message_to_json from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient from vnt_manager.client.VNTManagerClient import VNTManagerClient import logging from .Tools import ( format_grpc_to_json, grpc_connection_id, grpc_context_id, grpc_device_id, grpc_link, grpc_link_id, grpc_policy_rule_id, grpc_service_id, grpc_service, grpc_slice_id, grpc_topology_id) LOGGER = logging.getLogger(__name__) class _Resource(Resource): def __init__(self) -> None: super().__init__() Loading Loading @@ -198,16 +204,26 @@ class VirtualLinks(_Resource): return format_grpc_to_json(self.vntmanager_client.ListVirtualLinks(Empty())) class VirtualLink(_Resource): def get(self, link_uuid : str): return format_grpc_to_json(self.vntmanager_client.GetVirtualLink(grpc_link_id(link_uuid))) def post(self): def get(self, virtual_link_uuid : str): return format_grpc_to_json(self.vntmanager_client.GetVirtualLink(grpc_link_id(virtual_link_uuid))) def post(self, virtual_link_uuid : str): # pylint: disable=unused-argument link = request.get_json() LOGGER.info('---------------------------LINK received------------------------------') LOGGER.info(link) LOGGER.info('----------------------------------------------------------------------') LOGGER.info(link['link_id']) LOGGER.info('type: {}'.format(type(link['link_id']))) LOGGER.info('---------------------------LINK received------------------------------') link = grpc_link(link) return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(grpc_link(link))) def put(self): def put(self, virtual_link_uuid : str): # pylint: disable=unused-argument link = request.get_json() return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(grpc_link(link))) def delete(self, link_uuid : str): return format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(grpc_link_id(link_uuid))) def delete(self, virtual_link_uuid : str): return format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(grpc_link_id(virtual_link_uuid))) class ConnectionIds(_Resource): def get(self, context_uuid : str, service_uuid : str): Loading Loading
manifests/nbiservice.yaml +1 −13 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ spec: - containerPort: 8762 env: - name: LOG_LEVEL value: "INFO" value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:9090"] Loading Loading @@ -83,15 +83,3 @@ spec: protocol: TCP port: 8762 targetPort: 8762 --- apiVersion: v1 kind: Service metadata: name: remote-teraflow spec: type: ExternalName externalName: nbiservice.asdf.svc.cluster.local ports: - name: ws protocol: TCP port: 8762
proto/context.proto +1 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,7 @@ message Link { string name = 2; repeated EndPointId link_endpoint_ids = 3; LinkAttributes attributes = 4; bool virtual = 5; } message LinkIdList { Loading
src/e2e_orchestrator/Dockerfile +1 −0 Original line number Diff line number Diff line Loading @@ -79,6 +79,7 @@ RUN python3 -m pip install -r e2e_orchestrator/requirements.txt # Add component files into working directory COPY --chown=teraflow:teraflow ./src/context/. context COPY --chown=teraflow:teraflow ./src/e2e_orchestrator/. e2e_orchestrator COPY --chown=teraflow:teraflow ./src/service/. service # Start the service ENTRYPOINT ["python", "-m", "e2e_orchestrator.service"]
src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py +15 −7 Original line number Diff line number Diff line Loading @@ -15,9 +15,10 @@ import copy from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply from common.proto.context_pb2 import Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, TopologyId, Device, Topology, Context from common.proto.context_pb2 import Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, TopologyId, Device, Topology, Context, Service from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient from context.service.database.uuids.EndPoint import endpoint_get_uuid from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest from common.tools.grpc.Tools import grpc_message_to_json_string Loading @@ -37,7 +38,7 @@ METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC") context_client: ContextClient = ContextClient() service_client: ServiceClient = ServiceClient() EXT_HOST = "nbiservice.tfs-ip.svc.cluster.local" EXT_PORT = "8762" Loading @@ -51,12 +52,17 @@ def _event_received(websocket): message_json = json.loads(message) if 'link_id' in message_json: obj = Link(**message_json) if _check_policies(obj): pass link = Link(**message_json) service = Service() service.service_id = link.link_id.link_uuid service.serivice_type = 2 # Optical service.service_status = 1 # service_client.CreateService(service) websocket.send(message) elif 'link_uuid' in message_json: obj = LinkId(**message_json) else: topology_details = TopologyDetails(**message_json) Loading @@ -72,9 +78,11 @@ def _event_received(websocket): context_client.SetTopology(topology) for device in topology_details.devices: LOGGER.info('Setting Device: {}'.format(device)) context_client.SetDevice(device) for link in topology_details.links: LOGGER.info('Setting Link: {}'.format(link)) context_client.SetLink(link) Loading
src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py +22 −6 Original line number Diff line number Diff line Loading @@ -20,11 +20,17 @@ from common.tools.grpc.Tools import grpc_message_to_json from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient from vnt_manager.client.VNTManagerClient import VNTManagerClient import logging from .Tools import ( format_grpc_to_json, grpc_connection_id, grpc_context_id, grpc_device_id, grpc_link, grpc_link_id, grpc_policy_rule_id, grpc_service_id, grpc_service, grpc_slice_id, grpc_topology_id) LOGGER = logging.getLogger(__name__) class _Resource(Resource): def __init__(self) -> None: super().__init__() Loading Loading @@ -198,16 +204,26 @@ class VirtualLinks(_Resource): return format_grpc_to_json(self.vntmanager_client.ListVirtualLinks(Empty())) class VirtualLink(_Resource): def get(self, link_uuid : str): return format_grpc_to_json(self.vntmanager_client.GetVirtualLink(grpc_link_id(link_uuid))) def post(self): def get(self, virtual_link_uuid : str): return format_grpc_to_json(self.vntmanager_client.GetVirtualLink(grpc_link_id(virtual_link_uuid))) def post(self, virtual_link_uuid : str): # pylint: disable=unused-argument link = request.get_json() LOGGER.info('---------------------------LINK received------------------------------') LOGGER.info(link) LOGGER.info('----------------------------------------------------------------------') LOGGER.info(link['link_id']) LOGGER.info('type: {}'.format(type(link['link_id']))) LOGGER.info('---------------------------LINK received------------------------------') link = grpc_link(link) return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(grpc_link(link))) def put(self): def put(self, virtual_link_uuid : str): # pylint: disable=unused-argument link = request.get_json() return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(grpc_link(link))) def delete(self, link_uuid : str): return format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(grpc_link_id(link_uuid))) def delete(self, virtual_link_uuid : str): return format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(grpc_link_id(virtual_link_uuid))) class ConnectionIds(_Resource): def get(self, context_uuid : str, service_uuid : str): Loading