X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Ftransportpce_tests%2Fcommon%2Ftest_utils_rfc8040.py;h=e83a284a221260238a92c3cca7afdae5a2efe07f;hb=refs%2Fchanges%2F71%2F101871%2F3;hp=eec839ac7ba95fea21ba15a9a4c3547142d986e2;hpb=c2a7990d648d10fd9c5688e717998e0d633fe663;p=transportpce.git diff --git a/tests/transportpce_tests/common/test_utils_rfc8040.py b/tests/transportpce_tests/common/test_utils_rfc8040.py index eec839ac7..e83a284a2 100644 --- a/tests/transportpce_tests/common/test_utils_rfc8040.py +++ b/tests/transportpce_tests/common/test_utils_rfc8040.py @@ -318,6 +318,22 @@ def check_device_connection(node: str): 'connection-status': connection_status} +def check_node_request(node: 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)) + res = response.json() + return_key = {'rfc8040': 'org-openroadm-device:org-openroadm-device', + 'draft-bierman02': 'org-openroadm-device'} + if return_key[RESTCONF_VERSION] in res.keys(): + response_attribute = res[return_key[RESTCONF_VERSION]] + else: + response_attribute = res['errors']['error'][0] + return {'status_code': response.status_code, + 'org-openroadm-device': response_attribute} + + 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/{}={}?content=nonconfig', # nopep8 @@ -334,6 +350,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 @@ -480,6 +510,24 @@ def del_oms_attr_request(link: str,): return response +def get_ietf_network_node_request(network: str, node: str, content: str): + url = {'rfc8040': '{}/data/ietf-network:networks/network={}/node={}?content={}', + 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/node/{}'} + if RESTCONF_VERSION == 'rfc8040': + format_args = ('{}', network, node, content) + elif content == 'config': + format_args = ('{}', content, network, node) + else: + format_args = ('{}', 'operational', network, node) + response = get_request(url[RESTCONF_VERSION].format(*format_args)) + res = response.json() + return_key = {'rfc8040': 'ietf-network:node', + 'draft-bierman02': 'node'} + node = res[return_key[RESTCONF_VERSION]][0] + return {'status_code': response.status_code, + 'node': node} + + def del_ietf_network_node_request(network: str, node: str, content: str): url = {'rfc8040': '{}/data/ietf-network:networks/network={}/node={}?content={}', 'draft-bierman02': '{}/{}/ietf-network:networks/network/{}/node/{}'} @@ -492,8 +540,48 @@ def del_ietf_network_node_request(network: str, node: str, content: str): response = delete_request(url[RESTCONF_VERSION].format(*format_args)) return response + # -# TransportPCE network-utils and service-path and service-implementation operations +# Service list operations +# + + +def get_ordm_serv_list_request(): + url = {'rfc8040': '{}/data/org-openroadm-service:service-list?content=nonconfig', + 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/'} + response = get_request(url[RESTCONF_VERSION]) + res = response.json() + return_key = {'rfc8040': 'org-openroadm-service:service-list', + 'draft-bierman02': 'service-list'} + if return_key[RESTCONF_VERSION] in res.keys(): + response_attribute = res[return_key[RESTCONF_VERSION]] + else: + response_attribute = res['errors']['error'][0] + return {'status_code': response.status_code, + 'service-list': response_attribute} + + +def get_ordm_serv_list_attr_request(attribute: str, value: str): + url = {'rfc8040': '{}/data/org-openroadm-service:service-list/{}={}?content=nonconfig', + 'draft-bierman02': '{}/operational/org-openroadm-service:service-list/{}/{}'} + if RESTCONF_VERSION == 'rfc8040': + format_args = ('{}', attribute, value) + else: + format_args = ('{}', attribute, value) + response = get_request(url[RESTCONF_VERSION].format(*format_args)) + res = response.json() + return_key = {'rfc8040': 'org-openroadm-service:' + attribute, + 'draft-bierman02': attribute} + if return_key[RESTCONF_VERSION] in res.keys(): + response_attribute = res[return_key[RESTCONF_VERSION]] + else: + response_attribute = res['errors']['error'][0] + return {'status_code': response.status_code, + attribute: response_attribute} + + +# +# TransportPCE internal API RPCs # @@ -511,63 +599,18 @@ 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:') - 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({'input': payload}, 'transportpce-device-renderer:') - else: - data = {'input': payload} - response = post_request(url, data) - res = response.json() - return_key = {'rfc8040': 'transportpce-device-renderer:output', - 'draft-bierman02': 'output'} - return_output = res[return_key[RESTCONF_VERSION]] - return {'status_code': response.status_code, - 'output': return_output} - - -def device_renderer_otn_service_path_request(payload: dict): - url = "{}/operations/transportpce-device-renderer:otn-service-path" - if RESTCONF_VERSION == 'draft-bierman02': - data = prepend_dict_keys({'input': payload}, 'transportpce-device-renderer:') - else: - data = {'input': payload} - response = post_request(url, data) - res = response.json() - return_key = {'rfc8040': 'transportpce-device-renderer:output', - 'draft-bierman02': 'output'} - return_output = res[return_key[RESTCONF_VERSION]] - return {'status_code': response.status_code, - 'output': return_output} - - -def device_renderer_service_implementation_request(payload: dict): - url = "{}/operations/transportpce-renderer:service-implementation-request" - if RESTCONF_VERSION == 'draft-bierman02': - data = prepend_dict_keys({'input': payload}, 'transportpce-renderer:') +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': payload} response = post_request(url, data) res = response.json() - return_key = {'rfc8040': 'transportpce-renderer:output', + return_key = {'rfc8040': api_module + ':output', 'draft-bierman02': 'output'} return_output = res[return_key[RESTCONF_VERSION]] return {'status_code': response.status_code,