X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Ftransportpce_tests%2Fcommon%2Ftest_utils_rfc8040.py;h=785f2a6d8f5c329c305921d8ba07f54838c35813;hb=450696b90c3399ed243be1e6aebb3f56a5066b1f;hp=bf4fb6d66ff44ec5194a2fee5943cc7d215e0432;hpb=75960ace43437ad40c2a4fafd8dcde0e0c9dd225;p=transportpce.git diff --git a/tests/transportpce_tests/common/test_utils_rfc8040.py b/tests/transportpce_tests/common/test_utils_rfc8040.py index bf4fb6d66..785f2a6d8 100644 --- a/tests/transportpce_tests/common/test_utils_rfc8040.py +++ b/tests/transportpce_tests/common/test_utils_rfc8040.py @@ -63,7 +63,7 @@ if 'USE_ODL_RESTCONF_VERSION' in os.environ: else: RESTCONF_VERSION = 'rfc8040' -RESTCONF_BASE_URL = 'http://localhost:' + RESTCONF_PORT + RESTCONF_PATH_PREFIX[RESTCONF_VERSION] +RESTCONF_BASE_URL = 'http://localhost:' + str(RESTCONF_PORT) + RESTCONF_PATH_PREFIX[RESTCONF_VERSION] if 'USE_ODL_ALT_KARAF_INSTALL_DIR' in os.environ: KARAF_INSTALLDIR = os.environ['USE_ODL_ALT_KARAF_INSTALL_DIR'] @@ -304,7 +304,7 @@ def unmount_device(node: str): def check_device_connection(node: str): - url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}', + url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}?content=nonconfig', 'draft-bierman02': '{}/operational/network-topology:network-topology/topology/topology-netconf/node/{}'} response = get_request(url[RESTCONF_VERSION].format('{}', node)) res = response.json() @@ -320,8 +320,8 @@ def check_device_connection(node: str): def check_node_attribute_request(node: str, attribute: str, attribute_value: str): # pylint: disable=line-too-long - url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}/yang-ext:mount/org-openroadm-device:org-openroadm-device/{}={}', # nopep8 - 'draft-bierman02': '{}/config/network-topology:network-topology/topology/topology-netconf/node/{}/yang-ext:mount/org-openroadm-device:org-openroadm-device/{}/{}'} # nopep8 + url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}/yang-ext:mount/org-openroadm-device:org-openroadm-device/{}={}?content=nonconfig', # nopep8 + 'draft-bierman02': '{}/operational/network-topology:network-topology/topology/topology-netconf/node/{}/yang-ext:mount/org-openroadm-device:org-openroadm-device/{}/{}'} # nopep8 response = get_request(url[RESTCONF_VERSION].format('{}', node, attribute, attribute_value)) res = response.json() return_key = {'rfc8040': 'org-openroadm-device:' + attribute, @@ -334,6 +334,20 @@ def check_node_attribute_request(node: str, attribute: str, attribute_value: str attribute: response_attribute} +def check_node_attribute2_request(node: str, attribute: str, attribute_value: str, attribute2: str): + # pylint: disable=line-too-long + url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}/yang-ext:mount/org-openroadm-device:org-openroadm-device/{}={}/{}?content=config', # nopep8 + 'draft-bierman02': '{}/config/network-topology:network-topology/topology/topology-netconf/node/{}/yang-ext:mount/org-openroadm-device:org-openroadm-device/{}/{}/{}'} # nopep8 + response = get_request(url[RESTCONF_VERSION].format('{}', node, attribute, attribute_value, attribute2)) + res = response.json() + if attribute2 in res.keys(): + response_attribute = res[attribute2] + else: + response_attribute = res['errors']['error'][0] + return {'status_code': response.status_code, + attribute2: response_attribute} + + def del_node_attribute_request(node: str, attribute: str, attribute_value: str): # pylint: disable=line-too-long url = {'rfc8040': '{}/data/network-topology:network-topology/topology=topology-netconf/node={}/yang-ext:mount/org-openroadm-device:org-openroadm-device/{}={}', # nopep8 @@ -385,6 +399,18 @@ def portmapping_request(node: str, mapping: str): 'mapping': mapping} +def portmapping_switching_pool_request(node: str, switching_pool: str): + url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}/switching-pool-lcp={}', + 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}/switching-pool-lcp/{}'} + response = get_request(url[RESTCONF_VERSION].format('{}', node, switching_pool)) + res = response.json() + return_key = {'rfc8040': 'transportpce-portmapping:switching-pool-lcp', + 'draft-bierman02': 'switching-pool-lcp'} + switching_pool = res[return_key[RESTCONF_VERSION]] + return {'status_code': response.status_code, + 'switching_pool': switching_pool} + + def portmapping_mc_capa_request(node: str, mc_capa: str): url = {'rfc8040': '{}/data/transportpce-portmapping:network/nodes={}/mc-capabilities={}', 'draft-bierman02': '{}/config/transportpce-portmapping:network/nodes/{}/mc-capabilities/{}'} @@ -481,7 +507,7 @@ def del_ietf_network_node_request(network: str, node: str, content: str): return response # -# TransportPCE network-utils and service-path operations +# TransportPCE internal API RPCs # @@ -499,28 +525,19 @@ def prepend_dict_keys(input_dict: dict, prefix: str): return return_dict -def connect_xpdr_to_rdm_request(payload: dict): - url = "{}/operations/transportpce-networkutils:init-xpdr-rdm-links" - if RESTCONF_VERSION == 'draft-bierman02': - data = prepend_dict_keys({'input': {'links-input': payload}}, 'networkutils:') - else: - data = {'input': {'links-input': payload}} - return post_request(url, data) - - -def connect_rdm_to_xpdr_request(payload: dict): - url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links" - if RESTCONF_VERSION == 'draft-bierman02': - data = prepend_dict_keys({'input': {'links-input': payload}}, 'networkutils:') +def transportpce_api_rpc_request(api_module: str, rpc: str, payload: dict): + # pylint: disable=consider-using-f-string + url = "{}/operations/{}:{}".format('{}', api_module, rpc) + if payload is None: + data = None + elif RESTCONF_VERSION == 'draft-bierman02': + data = prepend_dict_keys({'input': payload}, api_module + ':') else: - data = {'input': {'links-input': payload}} - return post_request(url, data) - - -def device_renderer_service_path_request(payload: dict): - url = "{}/operations/transportpce-device-renderer:service-path" - if RESTCONF_VERSION == 'draft-bierman02': - data = prepend_dict_keys(payload, 'transportpce-device-renderer:') - else: - data = payload - return post_request(url, data) + data = {'input': payload} + response = post_request(url, data) + res = response.json() + return_key = {'rfc8040': api_module + ':output', + 'draft-bierman02': 'output'} + return_output = res[return_key[RESTCONF_VERSION]] + return {'status_code': response.status_code, + 'output': return_output}