Loading src/inter_device_translation/__init__.py +64 −7 Original line number Diff line number Diff line import yaml import os with open('config/config.yml') as cfg: # Get the directory where this module is located module_dir = os.path.dirname(os.path.abspath(__file__)) config_path = os.path.join(module_dir, 'config', 'config.yml') with open(config_path) as cfg: config : dict = yaml.safe_load(cfg) dict_name = config.get('name') Loading @@ -17,22 +22,31 @@ class DictHelper: return yaml.safe_load(cfg) def get_object(self, name, plural=False) -> str: return self._read().get(name).get('plural' if plural else 'singular') config_data = self._read() if name not in config_data.get('objects', {}): raise KeyError(f"Object '{name}' not found in configuration") return config_data['objects'][name].get('plural' if plural else 'singular') def get_namespaces(self, name) -> str: return self._read().get(name) return self._read().get('namespaces', {}).get(name) def get_path(self, name) -> str: path_details = self._read().get(name) def get_path(self, name, **kwargs) -> str: path_details = self._read().get('paths', {}).get(name) if not path_details: raise KeyError(f"Path '{name}' not found in configuration") path : str = path_details.get('path') namespace = path_details.get('namespace') # Format the path with provided parameters if kwargs: path = path.format(**kwargs) if namespace is None: return path path_segments = path.split('/') required_namespaces = len([s for s in path_segments if len(s > 1)]) required_namespaces = len([s for s in path_segments if len(s) > 1]) if type(namespace) == list and len(namespace) != required_namespaces: raise Exception(f'Number of namespaces do not match the specified path : {path}') Loading @@ -49,7 +63,50 @@ class DictHelper: else: processed_segments.append(s) return '/'.join(processed_segments) def get_element(self, name) -> Tuple[str, str]: """ Get element namespace and path for XML element lookups. Args: name: The name of the element to look up Returns: Tuple of (namespace, path) for the element """ element_details = self._read().get('elements', {}).get(name) if not element_details: raise KeyError(f"Element '{name}' not found in configuration") namespace = element_details.get('namespace') path = element_details.get('path') return namespace, path def get_resource_key(self, name, **kwargs) -> str: """ Get device-specific resource key path. Args: name: The resource key name to look up **kwargs: Parameters to format into the resource key path Returns: Formatted resource key path """ resource_key_details = self._read().get('resource_keys', {}).get(name) if not resource_key_details: raise KeyError(f"Resource key '{name}' not found in configuration") path = resource_key_details.get('path') if kwargs: path = path.format(**kwargs) return path def get_dict_helper(dict_type = None) -> DictHelper: if dict_type is None: dict_type = dict_default return DictHelper(f'config/{dict_name}.{dict_type}.yml') No newline at end of file config_file = os.path.join(module_dir, 'config', f'{dict_name}.{dict_type}.yml') return DictHelper(config_file) No newline at end of file src/inter_device_translation/config/dict.ipi.yml +450 −1 Original line number Diff line number Diff line Loading @@ -6,8 +6,457 @@ objects: components: singular: interface plural: interfaces interfaces: singular: interface plural: interfaces paths: component_type: namespace: ipiie path: extended/state/hardware-type ports: namespace: ipii path: interfaces/interface interface_counters: namespace: ipii path: interfaces/interface[name='{interface_name}']/state/counters/{counter_name} interfaces: namespace: ipii path: interfaces/interface subinterfaces: namespace: ipii path: subinterfaces/subinterface ipv4_addresses: namespace: ipiiip path: ipv4/addresses/address ipv6_addresses: namespace: ipiiip path: ipv6/addresses/address acl_set: namespace: ipiacl path: acl/acl-sets/acl-set acl_entry: namespace: ipiacl path: acl-entries/acl-entry acl_ipv4: namespace: ipiacl path: ipv4/config acl_transport: namespace: ipiacl path: transport/config acl_actions: namespace: ipiacl path: actions/config acl_interface: namespace: ipiacl path: acl/interfaces/interface acl_ingress: namespace: ipiacl path: ingress-acl-sets/ingress-acl-set acl_egress: namespace: ipiacl path: egress-acl-sets/egress-acl-set network_instances: namespace: ipini path: network-instances/network-instance ni_protocols: namespace: ipini path: protocols/protocol ni_table_connections: namespace: ipini path: table-connections/table-connection ni_interface: namespace: ipini path: interfaces/interface ni_apply_policy: namespace: ipini path: inter-instance-policies/apply-policy ni_import_policy: namespace: ipini path: config/import-policy ni_export_policy: namespace: ipini path: config/export-policy ni_connection_points: namespace: ipini path: connection-points/connection-point ni_endpoints: namespace: ipini path: endpoints/endpoint/remote/config routing_policy_definitions: namespace: ipirp path: routing-policy/policy-definitions/policy-definition pd_statements: namespace: ipirp path: statements/statement pd_conditions: namespace: ipirp path: conditions/ipibp:bgp-conditions/ipibp:match-ext-community-set pd_actions: namespace: ipirp path: actions bgp_ext_community_set: namespace: ipirp path: routing-policy/defined-sets/ipibp:bgp-defined-sets/ipibp:ext-community-sets/ipibp:ext-community-set elements: interface_name: namespace: ipii path: name interface_type: namespace: ipii path: config/type interface_state_type: namespace: ipii path: state/type interface_mtu: namespace: ipii path: config/mtu interface_description: namespace: ipii path: config/description interface_counters_in_pkts: namespace: ipii path: state/counters/in-pkts interface_counters_in_octets: namespace: ipii path: state/counters/in-octets interface_counters_in_errors: namespace: ipii path: state/counters/in-errors interface_counters_out_octets: namespace: ipii path: state/counters/out-octets interface_counters_out_pkts: namespace: ipii path: state/counters/out-pkts interface_counters_out_errors: namespace: ipii path: state/counters/out-errors interface_counters_out_discards: namespace: ipii path: state/counters/out-discards subinterface_index: namespace: ipii path: index subinterface_vlan: namespace: ipiv path: vlan/match/single-tagged/config/vlan-id ipv4_address: namespace: ipiiip path: state/ip ipv4_prefix: namespace: ipiiip path: state/prefix-length ipv6_address: namespace: ipiiip path: state/ip ipv6_prefix: namespace: ipiiip path: state/prefix-length component_name: namespace: ipii path: name component_type: namespace: ipii path: state/type component_description: namespace: ipii path: state/description component_location: namespace: ipii path: state/location component_id: namespace: ipii path: state/id component_empty: namespace: ipii path: state/empty component_parent: namespace: ipii path: state/parent component_hardware_version: namespace: ipii path: state/hardware-version component_firmware_version: namespace: ipii path: state/firmware-version component_software_version: namespace: ipii path: state/software-version component_serial: namespace: ipii path: state/serial-no component_mfg_name: namespace: ipii path: state/mfg-name component_model_name: namespace: ipii path: state/model-name component_part_no: namespace: ipii path: state/part-no component_removable: namespace: ipii path: state/removable component_replaceable: namespace: ipii path: state/replaceable component_oper_status: namespace: ipii path: state/oper-status acl_name: namespace: ipiacl path: name acl_type: namespace: ipiacl path: type acl_sequence_id: namespace: ipiacl path: sequence-id acl_source_address: namespace: ipiacl path: source-address acl_destination_address: namespace: ipiacl path: destination-address acl_protocol: namespace: ipiacl path: protocol acl_dscp: namespace: ipiacl path: dscp acl_hop_limit: namespace: ipiacl path: hop-limit acl_source_port: namespace: ipiacl path: source-port acl_destination_port: namespace: ipiacl path: destination-port acl_tcp_flags: namespace: ipiacl path: tcp-flags acl_forwarding_action: namespace: ipiacl path: forwarding-action acl_log_action: namespace: ipiacl path: log-action acl_interface_id: namespace: ipiacl path: id acl_set_name_ingress: namespace: ipiacl path: set-name-ingress acl_type_ingress: namespace: ipiacl path: type-ingress acl_set_name_egress: namespace: ipiacl path: set-name-egress acl_type_egress: namespace: ipiacl path: type-egress ni_name: namespace: ipini path: name ni_type: namespace: ipini path: config/type ni_router_id: namespace: ipini path: config/router-id ni_route_distinguisher: namespace: ipini path: config/route-distinguisher ni_connection_point_id: namespace: ipini path: connection-point-id ni_remote_system: namespace: ipini path: remote-system ni_virtual_circuit_identifier: namespace: ipini path: virtual-circuit-identifier ni_protocol_identifier: namespace: ipini path: identifier ni_protocol_name: namespace: ipini path: name ni_bgp_as: namespace: ipini path: bgp/global/config/as ni_bgp_router_id: namespace: ipini path: bgp/global/config/router-id ni_src_protocol: namespace: ipini path: src-protocol ni_dst_protocol: namespace: ipini path: dst-protocol ni_address_family: namespace: ipini path: address-family ni_default_import_policy: namespace: ipini path: config/default-import-policy ni_interface_name: namespace: ipini path: config/interface ni_subinterface_name: namespace: ipini path: config/subinterface rp_policy_name: namespace: ipirp path: name rp_statement_name: namespace: ipirp path: name rp_ext_community_set: namespace: ipibp path: config/ext-community-set rp_match_set_options: namespace: ipibp path: config/match-set-options rp_policy_result: namespace: ipibp path: config/policy-result rp_ext_community_set_name: namespace: ipibp path: ext-community-set-name rp_ext_community_member: namespace: ipibp path: config/ext-community-member inv_component_name: namespace: ipii path: name inv_component_description: namespace: ipii path: state/description inv_component_location: namespace: ipii path: state/location inv_component_id: namespace: ipii path: state/id inv_component_type: namespace: ipii path: state/type inv_component_empty: namespace: ipii path: state/empty inv_component_parent: namespace: ipii path: state/parent inv_component_hardware_version: namespace: ipii path: state/hardware-version inv_component_firmware_version: namespace: ipii path: state/firmware-version inv_component_software_version: namespace: ipii path: state/software-version inv_component_serial: namespace: ipii path: state/serial-no inv_component_mfg_name: namespace: ipii path: state/mfg-name inv_component_removable: namespace: ipii path: state/removable inv_component_mfg_date: namespace: ipii path: state/mfg-date inv_transceiver_serial: namespace: ipitr path: transceiver/state/serial-no inv_transceiver_present: namespace: ipitr path: transceiver/state/present inv_transceiver_vendor: namespace: ipitr path: transceiver/state/vendor inv_transceiver_connector: namespace: ipitr path: transceiver/state/connector-type inv_transceiver_form: namespace: ipitr path: transceiver/state/form-factor ep_component_type: namespace: ipii path: state/type ep_component_name: namespace: ipii path: name ep_port_channel_speed: namespace: ipipp path: port/breakout-mode/state/channel-speed resource_keys: network_instance: path: /network_instance[{name}] network_instance_protocols: path: /network_instance[{name}]/protocols[{identifier}] network_instance_table_connections: path: /network_instance[{name}]/table_connections[{src_protocol}][{dst_protocol}][{address_family}] network_instance_interface: path: /network_instance[{name}]/interface[{interface_name}] network_instance_inter_instance_policies: path: /network_instance[{name}]/inter_instance_policies[{policy_name}] acl_set_entry: path: /acl/acl-set[{name}][{type}]/acl-entry[{sequence_id}] acl_interfaces_ingress: path: /acl/interfaces/ingress[{name}][{type}] acl_interfaces_egress: path: /acl/interfaces/egress[{name}][{type}] interface_subinterface: path: /interface[{name}]/subinterface[{index}] routing_policy_definition: path: /routing_policy/policy_definition[{name}] routing_policy_statement: path: /routing_policy/policy_definition[{name}]/statement[{statement_name}] routing_policy_bgp_defined_set: path: /routing_policy/bgp_defined_set[{name}] routing_policy_bgp_defined_set_member: path: /routing_policy/bgp_defined_set[{name}][{member}] inventory_component: path: /inventory[{name}] endpoints_endpoint: path: /endpoints/endpoint[{uuid}] interface: path: /interface[{name}] paths: interface_counters: path: /ipinfusion-interfaces:interfaces/interface[name={name}]/state/counters/{counter} namespace: ipii network_instance_interfaces: path: /ipinfusion-network-instance:network-instances/network-instance[name={name}]/interfaces namespace: ipini network_instance_protocols: path: /ipinfusion-network-instance:network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}] namespace: ipini network_instance_static_routes: path: /ipinfusion-network-instance:network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}]/static-routes/static[prefix={prefix}] namespace: ipini interface_counters_path: path: /ipinfusion-interfaces:interfaces/interface/state/counters namespace: ipii network_instance_interface: path: /ipinfusion-network-instances/network-instance[name={name}]/interfaces/interface[id={interface_id}] namespace: ipini network_instance_protocol: path: /ipinfusion-network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}] namespace: ipini network_instance_static_route: path: /ipinfusion-network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}]/static-routes/static[prefix={prefix}] namespace: ipini interface_subinterface: path: /ipinfusion-interfaces/interface[name={name}]/subinterfaces/subinterface[index={index}] namespace: ipii No newline at end of file src/inter_device_translation/config/dict.oc.yml +450 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
src/inter_device_translation/__init__.py +64 −7 Original line number Diff line number Diff line import yaml import os with open('config/config.yml') as cfg: # Get the directory where this module is located module_dir = os.path.dirname(os.path.abspath(__file__)) config_path = os.path.join(module_dir, 'config', 'config.yml') with open(config_path) as cfg: config : dict = yaml.safe_load(cfg) dict_name = config.get('name') Loading @@ -17,22 +22,31 @@ class DictHelper: return yaml.safe_load(cfg) def get_object(self, name, plural=False) -> str: return self._read().get(name).get('plural' if plural else 'singular') config_data = self._read() if name not in config_data.get('objects', {}): raise KeyError(f"Object '{name}' not found in configuration") return config_data['objects'][name].get('plural' if plural else 'singular') def get_namespaces(self, name) -> str: return self._read().get(name) return self._read().get('namespaces', {}).get(name) def get_path(self, name) -> str: path_details = self._read().get(name) def get_path(self, name, **kwargs) -> str: path_details = self._read().get('paths', {}).get(name) if not path_details: raise KeyError(f"Path '{name}' not found in configuration") path : str = path_details.get('path') namespace = path_details.get('namespace') # Format the path with provided parameters if kwargs: path = path.format(**kwargs) if namespace is None: return path path_segments = path.split('/') required_namespaces = len([s for s in path_segments if len(s > 1)]) required_namespaces = len([s for s in path_segments if len(s) > 1]) if type(namespace) == list and len(namespace) != required_namespaces: raise Exception(f'Number of namespaces do not match the specified path : {path}') Loading @@ -49,7 +63,50 @@ class DictHelper: else: processed_segments.append(s) return '/'.join(processed_segments) def get_element(self, name) -> Tuple[str, str]: """ Get element namespace and path for XML element lookups. Args: name: The name of the element to look up Returns: Tuple of (namespace, path) for the element """ element_details = self._read().get('elements', {}).get(name) if not element_details: raise KeyError(f"Element '{name}' not found in configuration") namespace = element_details.get('namespace') path = element_details.get('path') return namespace, path def get_resource_key(self, name, **kwargs) -> str: """ Get device-specific resource key path. Args: name: The resource key name to look up **kwargs: Parameters to format into the resource key path Returns: Formatted resource key path """ resource_key_details = self._read().get('resource_keys', {}).get(name) if not resource_key_details: raise KeyError(f"Resource key '{name}' not found in configuration") path = resource_key_details.get('path') if kwargs: path = path.format(**kwargs) return path def get_dict_helper(dict_type = None) -> DictHelper: if dict_type is None: dict_type = dict_default return DictHelper(f'config/{dict_name}.{dict_type}.yml') No newline at end of file config_file = os.path.join(module_dir, 'config', f'{dict_name}.{dict_type}.yml') return DictHelper(config_file) No newline at end of file
src/inter_device_translation/config/dict.ipi.yml +450 −1 Original line number Diff line number Diff line Loading @@ -6,8 +6,457 @@ objects: components: singular: interface plural: interfaces interfaces: singular: interface plural: interfaces paths: component_type: namespace: ipiie path: extended/state/hardware-type ports: namespace: ipii path: interfaces/interface interface_counters: namespace: ipii path: interfaces/interface[name='{interface_name}']/state/counters/{counter_name} interfaces: namespace: ipii path: interfaces/interface subinterfaces: namespace: ipii path: subinterfaces/subinterface ipv4_addresses: namespace: ipiiip path: ipv4/addresses/address ipv6_addresses: namespace: ipiiip path: ipv6/addresses/address acl_set: namespace: ipiacl path: acl/acl-sets/acl-set acl_entry: namespace: ipiacl path: acl-entries/acl-entry acl_ipv4: namespace: ipiacl path: ipv4/config acl_transport: namespace: ipiacl path: transport/config acl_actions: namespace: ipiacl path: actions/config acl_interface: namespace: ipiacl path: acl/interfaces/interface acl_ingress: namespace: ipiacl path: ingress-acl-sets/ingress-acl-set acl_egress: namespace: ipiacl path: egress-acl-sets/egress-acl-set network_instances: namespace: ipini path: network-instances/network-instance ni_protocols: namespace: ipini path: protocols/protocol ni_table_connections: namespace: ipini path: table-connections/table-connection ni_interface: namespace: ipini path: interfaces/interface ni_apply_policy: namespace: ipini path: inter-instance-policies/apply-policy ni_import_policy: namespace: ipini path: config/import-policy ni_export_policy: namespace: ipini path: config/export-policy ni_connection_points: namespace: ipini path: connection-points/connection-point ni_endpoints: namespace: ipini path: endpoints/endpoint/remote/config routing_policy_definitions: namespace: ipirp path: routing-policy/policy-definitions/policy-definition pd_statements: namespace: ipirp path: statements/statement pd_conditions: namespace: ipirp path: conditions/ipibp:bgp-conditions/ipibp:match-ext-community-set pd_actions: namespace: ipirp path: actions bgp_ext_community_set: namespace: ipirp path: routing-policy/defined-sets/ipibp:bgp-defined-sets/ipibp:ext-community-sets/ipibp:ext-community-set elements: interface_name: namespace: ipii path: name interface_type: namespace: ipii path: config/type interface_state_type: namespace: ipii path: state/type interface_mtu: namespace: ipii path: config/mtu interface_description: namespace: ipii path: config/description interface_counters_in_pkts: namespace: ipii path: state/counters/in-pkts interface_counters_in_octets: namespace: ipii path: state/counters/in-octets interface_counters_in_errors: namespace: ipii path: state/counters/in-errors interface_counters_out_octets: namespace: ipii path: state/counters/out-octets interface_counters_out_pkts: namespace: ipii path: state/counters/out-pkts interface_counters_out_errors: namespace: ipii path: state/counters/out-errors interface_counters_out_discards: namespace: ipii path: state/counters/out-discards subinterface_index: namespace: ipii path: index subinterface_vlan: namespace: ipiv path: vlan/match/single-tagged/config/vlan-id ipv4_address: namespace: ipiiip path: state/ip ipv4_prefix: namespace: ipiiip path: state/prefix-length ipv6_address: namespace: ipiiip path: state/ip ipv6_prefix: namespace: ipiiip path: state/prefix-length component_name: namespace: ipii path: name component_type: namespace: ipii path: state/type component_description: namespace: ipii path: state/description component_location: namespace: ipii path: state/location component_id: namespace: ipii path: state/id component_empty: namespace: ipii path: state/empty component_parent: namespace: ipii path: state/parent component_hardware_version: namespace: ipii path: state/hardware-version component_firmware_version: namespace: ipii path: state/firmware-version component_software_version: namespace: ipii path: state/software-version component_serial: namespace: ipii path: state/serial-no component_mfg_name: namespace: ipii path: state/mfg-name component_model_name: namespace: ipii path: state/model-name component_part_no: namespace: ipii path: state/part-no component_removable: namespace: ipii path: state/removable component_replaceable: namespace: ipii path: state/replaceable component_oper_status: namespace: ipii path: state/oper-status acl_name: namespace: ipiacl path: name acl_type: namespace: ipiacl path: type acl_sequence_id: namespace: ipiacl path: sequence-id acl_source_address: namespace: ipiacl path: source-address acl_destination_address: namespace: ipiacl path: destination-address acl_protocol: namespace: ipiacl path: protocol acl_dscp: namespace: ipiacl path: dscp acl_hop_limit: namespace: ipiacl path: hop-limit acl_source_port: namespace: ipiacl path: source-port acl_destination_port: namespace: ipiacl path: destination-port acl_tcp_flags: namespace: ipiacl path: tcp-flags acl_forwarding_action: namespace: ipiacl path: forwarding-action acl_log_action: namespace: ipiacl path: log-action acl_interface_id: namespace: ipiacl path: id acl_set_name_ingress: namespace: ipiacl path: set-name-ingress acl_type_ingress: namespace: ipiacl path: type-ingress acl_set_name_egress: namespace: ipiacl path: set-name-egress acl_type_egress: namespace: ipiacl path: type-egress ni_name: namespace: ipini path: name ni_type: namespace: ipini path: config/type ni_router_id: namespace: ipini path: config/router-id ni_route_distinguisher: namespace: ipini path: config/route-distinguisher ni_connection_point_id: namespace: ipini path: connection-point-id ni_remote_system: namespace: ipini path: remote-system ni_virtual_circuit_identifier: namespace: ipini path: virtual-circuit-identifier ni_protocol_identifier: namespace: ipini path: identifier ni_protocol_name: namespace: ipini path: name ni_bgp_as: namespace: ipini path: bgp/global/config/as ni_bgp_router_id: namespace: ipini path: bgp/global/config/router-id ni_src_protocol: namespace: ipini path: src-protocol ni_dst_protocol: namespace: ipini path: dst-protocol ni_address_family: namespace: ipini path: address-family ni_default_import_policy: namespace: ipini path: config/default-import-policy ni_interface_name: namespace: ipini path: config/interface ni_subinterface_name: namespace: ipini path: config/subinterface rp_policy_name: namespace: ipirp path: name rp_statement_name: namespace: ipirp path: name rp_ext_community_set: namespace: ipibp path: config/ext-community-set rp_match_set_options: namespace: ipibp path: config/match-set-options rp_policy_result: namespace: ipibp path: config/policy-result rp_ext_community_set_name: namespace: ipibp path: ext-community-set-name rp_ext_community_member: namespace: ipibp path: config/ext-community-member inv_component_name: namespace: ipii path: name inv_component_description: namespace: ipii path: state/description inv_component_location: namespace: ipii path: state/location inv_component_id: namespace: ipii path: state/id inv_component_type: namespace: ipii path: state/type inv_component_empty: namespace: ipii path: state/empty inv_component_parent: namespace: ipii path: state/parent inv_component_hardware_version: namespace: ipii path: state/hardware-version inv_component_firmware_version: namespace: ipii path: state/firmware-version inv_component_software_version: namespace: ipii path: state/software-version inv_component_serial: namespace: ipii path: state/serial-no inv_component_mfg_name: namespace: ipii path: state/mfg-name inv_component_removable: namespace: ipii path: state/removable inv_component_mfg_date: namespace: ipii path: state/mfg-date inv_transceiver_serial: namespace: ipitr path: transceiver/state/serial-no inv_transceiver_present: namespace: ipitr path: transceiver/state/present inv_transceiver_vendor: namespace: ipitr path: transceiver/state/vendor inv_transceiver_connector: namespace: ipitr path: transceiver/state/connector-type inv_transceiver_form: namespace: ipitr path: transceiver/state/form-factor ep_component_type: namespace: ipii path: state/type ep_component_name: namespace: ipii path: name ep_port_channel_speed: namespace: ipipp path: port/breakout-mode/state/channel-speed resource_keys: network_instance: path: /network_instance[{name}] network_instance_protocols: path: /network_instance[{name}]/protocols[{identifier}] network_instance_table_connections: path: /network_instance[{name}]/table_connections[{src_protocol}][{dst_protocol}][{address_family}] network_instance_interface: path: /network_instance[{name}]/interface[{interface_name}] network_instance_inter_instance_policies: path: /network_instance[{name}]/inter_instance_policies[{policy_name}] acl_set_entry: path: /acl/acl-set[{name}][{type}]/acl-entry[{sequence_id}] acl_interfaces_ingress: path: /acl/interfaces/ingress[{name}][{type}] acl_interfaces_egress: path: /acl/interfaces/egress[{name}][{type}] interface_subinterface: path: /interface[{name}]/subinterface[{index}] routing_policy_definition: path: /routing_policy/policy_definition[{name}] routing_policy_statement: path: /routing_policy/policy_definition[{name}]/statement[{statement_name}] routing_policy_bgp_defined_set: path: /routing_policy/bgp_defined_set[{name}] routing_policy_bgp_defined_set_member: path: /routing_policy/bgp_defined_set[{name}][{member}] inventory_component: path: /inventory[{name}] endpoints_endpoint: path: /endpoints/endpoint[{uuid}] interface: path: /interface[{name}] paths: interface_counters: path: /ipinfusion-interfaces:interfaces/interface[name={name}]/state/counters/{counter} namespace: ipii network_instance_interfaces: path: /ipinfusion-network-instance:network-instances/network-instance[name={name}]/interfaces namespace: ipini network_instance_protocols: path: /ipinfusion-network-instance:network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}] namespace: ipini network_instance_static_routes: path: /ipinfusion-network-instance:network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}]/static-routes/static[prefix={prefix}] namespace: ipini interface_counters_path: path: /ipinfusion-interfaces:interfaces/interface/state/counters namespace: ipii network_instance_interface: path: /ipinfusion-network-instances/network-instance[name={name}]/interfaces/interface[id={interface_id}] namespace: ipini network_instance_protocol: path: /ipinfusion-network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}] namespace: ipini network_instance_static_route: path: /ipinfusion-network-instances/network-instance[name={name}]/protocols/protocol[identifier={identifier}][name={protocol_name}]/static-routes/static[prefix={prefix}] namespace: ipini interface_subinterface: path: /ipinfusion-interfaces/interface[name={name}]/subinterfaces/subinterface[index={index}] namespace: ipii No newline at end of file
src/inter_device_translation/config/dict.oc.yml +450 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes