Skip to content
Snippets Groups Projects
Commit 1f45a3a7 authored by Shayan Hajipour's avatar Shayan Hajipour
Browse files

Merge branch...

Merge branch 'feat/237-elaborate-ietf-slice-nbi-to-support-adding-deleting-new-sdp-connection-group-and-match' into camara-demo-integration
parents 64df85c2 fc4c353c
No related branches found
No related tags found
2 merge requests!359Release TeraFlowSDN 5.0,!321Resolve: "(CTTC) CAMARA Demo Integration tests"
...@@ -22,7 +22,7 @@ from werkzeug.exceptions import UnsupportedMediaType ...@@ -22,7 +22,7 @@ from werkzeug.exceptions import UnsupportedMediaType
from context.client.ContextClient import ContextClient from context.client.ContextClient import ContextClient
from slice.client.SliceClient import SliceClient from slice.client.SliceClient import SliceClient
from ..tools.HttpStatusCodes import HTTP_CREATED from ..tools.HttpStatusCodes import HTTP_CREATED, HTTP_OK
from .ietf_slice_handler import IETFSliceHandler from .ietf_slice_handler import IETFSliceHandler
LOGGER = logging.getLogger(__name__) LOGGER = logging.getLogger(__name__)
...@@ -31,8 +31,10 @@ LOGGER = logging.getLogger(__name__) ...@@ -31,8 +31,10 @@ LOGGER = logging.getLogger(__name__)
class NSS_Services(Resource): class NSS_Services(Resource):
# @HTTP_AUTH.login_required # @HTTP_AUTH.login_required
def get(self): def get(self):
response = jsonify({"message": "All went well!"}) context_client = ContextClient()
# TODO Return list of current network-slice-services ietf_slices = IETFSliceHandler.get_all_ietf_slices(context_client)
response = jsonify(ietf_slices)
response.status_code = HTTP_OK
return response return response
# @HTTP_AUTH.login_required # @HTTP_AUTH.login_required
......
import json import json
import logging import logging
import uuid import uuid
from typing import Optional from typing import Dict, List, Optional
from common.Constants import DEFAULT_CONTEXT_NAME from common.Constants import DEFAULT_CONTEXT_NAME
from common.proto.context_pb2 import ( from common.proto.context_pb2 import (
...@@ -16,7 +16,6 @@ from common.proto.context_pb2 import ( ...@@ -16,7 +16,6 @@ from common.proto.context_pb2 import (
) )
from common.tools.context_queries.Slice import get_slice_by_defualt_name from common.tools.context_queries.Slice import get_slice_by_defualt_name
from common.tools.grpc.ConfigRules import update_config_rule_custom from common.tools.grpc.ConfigRules import update_config_rule_custom
from common.tools.grpc.Tools import grpc_message_to_json
from context.client import ContextClient from context.client import ContextClient
from .YangValidator import YangValidator from .YangValidator import YangValidator
...@@ -41,7 +40,7 @@ def get_custom_config_rule( ...@@ -41,7 +40,7 @@ def get_custom_config_rule(
return cr return cr
def sort_endpoints(endpoinst_list: list, sdps: list, connection_group: dict) -> list: def sort_endpoints(endpoinst_list: List, sdps: List, connection_group: Dict) -> List:
src_sdp_id = connection_group["connectivity-construct"][0]["p2p-sender-sdp"] src_sdp_id = connection_group["connectivity-construct"][0]["p2p-sender-sdp"]
sdp_id_name_mapping = {sdp["id"]: sdp["node-id"] for sdp in sdps} sdp_id_name_mapping = {sdp["id"]: sdp["node-id"] for sdp in sdps}
if endpoinst_list[0].device_id.device_uuid.uuid == sdp_id_name_mapping[src_sdp_id]: if endpoinst_list[0].device_id.device_uuid.uuid == sdp_id_name_mapping[src_sdp_id]:
...@@ -50,8 +49,8 @@ def sort_endpoints(endpoinst_list: list, sdps: list, connection_group: dict) -> ...@@ -50,8 +49,8 @@ def sort_endpoints(endpoinst_list: list, sdps: list, connection_group: dict) ->
def replace_ont_endpoint_with_emu_dc( def replace_ont_endpoint_with_emu_dc(
endpoint_list: list, context_client: ContextClient endpoint_list: List, context_client: ContextClient
) -> list: ) -> List:
link_list = context_client.ListLinks(Empty()) link_list = context_client.ListLinks(Empty())
links = list(link_list.links) links = list(link_list.links)
devices_list = context_client.ListDevices(Empty()) devices_list = context_client.ListDevices(Empty())
...@@ -96,13 +95,28 @@ def replace_ont_endpoint_with_emu_dc( ...@@ -96,13 +95,28 @@ def replace_ont_endpoint_with_emu_dc(
return endpoint_list return endpoint_list
def validate_ietf_slice_data(request_data: dict) -> None: def validate_ietf_slice_data(request_data: Dict) -> None:
yang_validator = YangValidator("ietf-network-slice-service") yang_validator = YangValidator("ietf-network-slice-service")
_ = yang_validator.parse_to_dict(request_data) _ = yang_validator.parse_to_dict(request_data)
yang_validator.destroy() yang_validator.destroy()
class IETFSliceHandler: class IETFSliceHandler:
@staticmethod
def get_all_ietf_slices(context_client: ContextClient) -> Dict:
slices_list = context_client.ListSlices(Empty())
slices = slices_list.slices
ietf_slices = {"network-slice-services": {"slice-service": []}}
for slice in slices:
candidate_cr = get_custom_config_rule(
slice.slice_config, CANDIDATE_RESOURCE_KEY
)
candidate_ietf_data = json.loads(candidate_cr.custom.resource_value)
ietf_slices["network-slice-services"]["slice-service"].append(
candidate_ietf_data["network-slice-services"]["slice-service"][0]
)
return ietf_slices
@staticmethod @staticmethod
def create_slice_service( def create_slice_service(
request_data: dict, context_client: ContextClient request_data: dict, context_client: ContextClient
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment