diff --git a/Makefile b/Makefile index fd7564784..7c9aaba07 100644 --- a/Makefile +++ b/Makefile @@ -46,10 +46,10 @@ CYTHON_CMD = compileAll RELATED_PKGS = genie.libs.health genie.libs.clean genie.libs.conf genie.libs.ops genie.libs.robot genie.libs.sdk RELATED_PKGS += genie.libs.filetransferutils # pinning the version of pysnmp and pyasn1 to fix the type error when using execute_power_cycle_device api -DEPENDENCIES = restview psutil Sphinx wheel asynctest pysnmp-lextudio==5.0.29 pyasn1==0.4.8 +# Adding pyasyncore pkg to fix pysnmp scripts for python 3.12 +DEPENDENCIES = restview psutil Sphinx wheel asynctest pysnmp-lextudio==5.0.29 pyasn1==0.4.8 pyasyncore DEPENDENCIES += sphinx-rtd-theme==1.1.0 pyftpdlib tftpy\<0.8.1 robotframework -# aiohttp-swagger 1.0.15 requires jinja2==2.11.2 and markupsafe==1.1.1 -DEPENDENCIES += Cython==3.0.0 requests ruamel.yaml grpcio protobuf jinja2==2.11.2 markupsafe==2.0.1 +DEPENDENCIES += Cython==3.0.0 requests ruamel.yaml grpcio protobuf jinja2 # Internal variables. # (note - build examples & templates last because it will fail uploading to pypi # due to duplicates, and we'll for now accept that error) diff --git a/pkgs/clean-pkg/changelog/2024/february.rst b/pkgs/clean-pkg/changelog/2024/february.rst new file mode 100644 index 000000000..694584b70 --- /dev/null +++ b/pkgs/clean-pkg/changelog/2024/february.rst @@ -0,0 +1,16 @@ +-------------------------------------------------------------------------------- + New +-------------------------------------------------------------------------------- + +* modified and added hasattr + * is_ha triggered error added hasattr and attributes. + + +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* iosxe + * Update failed pattern for install image stage + + diff --git a/pkgs/clean-pkg/changelog/2024/january.rst b/pkgs/clean-pkg/changelog/2024/january.rst new file mode 100644 index 000000000..6668b69a8 --- /dev/null +++ b/pkgs/clean-pkg/changelog/2024/january.rst @@ -0,0 +1,24 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* iosxe + * Modified copy_to_device clean stage, update logic for image mapping when image is already loaded + + +-------------------------------------------------------------------------------- + New +-------------------------------------------------------------------------------- + +* cheetah + * Added LoadApImage + * Added new clean stage load_ap_image + +* stages/iosxe + * Updated connect stage to support rommon boot + +* iosxe + * Added configure_type_access_list_action + * API to configure ip/mac access-list with permission + + diff --git a/pkgs/clean-pkg/sdk_generator/output/github_clean.json b/pkgs/clean-pkg/sdk_generator/output/github_clean.json index af71d178c..f8fdf22b9 100644 --- a/pkgs/clean-pkg/sdk_generator/output/github_clean.json +++ b/pkgs/clean-pkg/sdk_generator/output/github_clean.json @@ -143,7 +143,7 @@ "module_name": "stages.stages", "package": "genie.libs.clean", "uid": "ConfigureReplace", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py#L1986" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py#L1990" } }, "ConfigureRrmDcaChannel": { @@ -166,13 +166,18 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/stages.py#L33" }, "iosxe": { + "doc": "This stage connects to the device that is being cleaned.\nStage Schema\n------------\nconnect:\n via (str, optional): Which connection to use from the testbed file. Uses the\n default connection if not specified.\n alias (str, optional): Which connection alias to use from the testbed file.\n timeout (int, optional): The timeout for the connection to complete in seconds.\n Defaults to 200.\n retry_timeout (int, optional): Overall timeout for retry mechanism in seconds.\n Defaults to 0 which means no retry.\n retry_interval (int, optional): Interval for retry mechanism in seconds. Defaults\n to 0 which means no retry.\nExample\n-------\nconnect:\n timeout: 60\n", + "module_name": "stages.stages", + "package": "genie.libs.clean", "sdwan": { "doc": "This stage connects to the device that is being cleaned.\n\nStage Schema\n------------\nconnect:\n\n via (str, optional): Which connection to use from the testbed file. Uses the\n default connection if not specified.\n\n timeout (int, optional): The timeout for the connection to complete in seconds.\n Defaults to 200.\n\n retry_timeout (int, optional): Overall timeout for retry mechanism in seconds.\n Defaults to 0 which means no retry.\n\n retry_interval (int, optional): Interval for retry mechanism in seconds. Defaults\n to 0 which means no retry.\n\nExample\n-------\nconnect:\n timeout: 60\n", "module_name": "stages.stages", "package": "genie.libs.clean", "uid": "Connect", "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/sdwan/stages.py#L31" - } + }, + "uid": "Connect", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py#L2046" }, "linux": { "wsim": { @@ -259,7 +264,7 @@ "module_name": "stages.stages", "package": "genie.libs.clean", "uid": "EraseApConfiguration", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py#L118" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py#L122" } } }, @@ -319,7 +324,7 @@ "uid": "InstallImage", "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/stages.py#L12" }, - "doc": "This stage installs a provided image onto the device using the install\nCLI. It also handles the automatic reloading of your device after the\ninstall is complete.\n\nStage Schema\n------------\ninstall_image:\n images (list): Image to install\n\n directory (str): directory where packages.conf is created\n\n\n save_system_config (bool, optional): Whether or not to save the system\n config if it was modified. Defaults to False.\n\n install_timeout (int, optional): Maximum time in seconds to wait for install\n process to finish. Defaults to 500.\n\n reload_timeout (int, optional): Maximum time in seconds to wait for reload\n process to finish. Defaults to 800.\n\n verify_running_image (bool, optional): Compare the image filename with the running\n image version on device. If a match is found, the stage will be skipped.\n Defaults to True.\n\n reload_service_args (optional):\n\n reload_creds (str, optional): The credential to use after the reload is\n complete. The credential name comes from the testbed yaml file.\n Defaults to the 'default' credential.\n\n prompt_recovery (bool, optional): Enable or disable the prompt recovery\n feature of unicon. Defaults to True.\n\n error_pattern (list, optional): List of regex strings to check for errors.\n Default: [r\"FAILED:.* \",]\n\n : \n Any other arguments that the Unicon reload service supports\n\nExample\n-------\ninstall_image:\n images:\n - /auto/some-location/that-this/image/stay-isr-image.bin\n save_system_config: True\n install_timeout: 1000\n reload_timeout: 1000\n\n", + "doc": "This stage installs a provided image onto the device using the install\nCLI. It also handles the automatic reloading of your device after the\ninstall is complete.\n\nStage Schema\n------------\ninstall_image:\n images (list): Image to install\n\n directory (str): directory where packages.conf is created\n\n\n save_system_config (bool, optional): Whether or not to save the system\n config if it was modified. Defaults to False.\n\n install_timeout (int, optional): Maximum time in seconds to wait for install\n process to finish. Defaults to 500.\n\n reload_timeout (int, optional): Maximum time in seconds to wait for reload\n process to finish. Defaults to 800.\n\n verify_running_image (bool, optional): Compare the image filename with the running\n image version on device. If a match is found, the stage will be skipped.\n Defaults to True.\n\n reload_service_args (optional):\n\n reload_creds (str, optional): The credential to use after the reload is\n complete. The credential name comes from the testbed yaml file.\n Defaults to the 'default' credential.\n\n prompt_recovery (bool, optional): Enable or disable the prompt recovery\n feature of unicon. Defaults to True.\n\n error_pattern (list, optional): List of regex strings to check for errors.\n Default: [r\"FAILED:.*?$\",]\n\n : \n Any other arguments that the Unicon reload service supports\n\nExample\n-------\ninstall_image:\n images:\n - /auto/some-location/that-this/image/stay-isr-image.bin\n save_system_config: True\n install_timeout: 1000\n reload_timeout: 1000\n\n", "module_name": "stages.stages", "package": "genie.libs.clean", "uid": "InstallImage", @@ -371,6 +376,17 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py#L458" } }, + "LoadApImage": { + "cheetah": { + "ap": { + "doc": "This stage loads new AP image\n\n Stage Schema\n ------------\n load_ap_image:\n ap_image_path (str): Absolute path where ap image is located\n\n server(str): Server alias which has AP image\n\n protocol(str): protocol through which AP image will be loaded\n\n max_time (int, optional): Maximum time for which this clean stage will try to clean ap.\n Defaults to 1200\n\n\n\n\n Example\n -------\n load_ap_image:\n ap_image_path: \"/auto/wnbu-groups-builds/FAST_BUNDLING/polaris_dev/6640/ap3g3-k9w8-tar.master-cisco.202309180209\"\n server: \"tftp\"\n max_time: \"1200\"\n ", + "module_name": "stages.stages", + "package": "genie.libs.clean", + "uid": "LoadApImage", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py#L184" + } + } + }, "LoadPies": { "iosxr": { "doc": "This stage installs provided pies onto the device.\n\nStage Schema\n------------\nload_pies:\n\n files (list): List of XR pies to install\n\n server (str, optional): Hostname or IP address of server to use for install\n command. Defaults to None (Looks in the testbed YAML for a TFTP server)\n\n prompt_level (str, optional): Prompt-level argument for install command.\n Defaults to 'none'.\n\n synchronous (bool, optional): Synchronous option for install command.\n Defaults to None.\n\n install_timeout (int, optional): Maximum time in seconds allowed for\n execution of the install command to complete. Defaults to 600.\n\n max_time (int, optional): Maximum time in seconds to wait while verifying\n the pies installed. Defaults to 300.\n\n check_interval (int, optional): Time interval in seconds while verifying\n the pies installed. Defaults to 30.\n\nExample\n-------\nload_pies:\n files:\n - /auto/path/to/image/asr9k-mcast-px.pie-7.3.1.08I\n - /auto/path/to/image/asr9k-mgbl-px.pie-7.3.1.08I\n - /auto/path/to/image/asr9k-mpls-px.pie-7.3.1.08I\n server: 10.1.6.244\n prompt_level: 'all'\n synchronous: True\n timeout: 150\n max_time: 300\n check_interval: 20\n", @@ -414,7 +430,7 @@ "module_name": "stages.stages", "package": "genie.libs.clean", "uid": "PrimeAp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py#L23" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py#L27" } } }, diff --git a/pkgs/clean-pkg/src/genie/libs/clean/__init__.py b/pkgs/clean-pkg/src/genie/libs/clean/__init__.py index 9c9bae4eb..9acdebea5 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/__init__.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/__init__.py @@ -8,7 +8,7 @@ ''' # metadata -__version__ = '23.11' +__version__ = '24.2' __author__ = 'Cisco Systems Inc.' __contact__ = ['asg-genie-support@cisco.com', 'pyats-support-ext@cisco.com'] __copyright__ = 'Copyright (c) 2019, Cisco Systems Inc.' diff --git a/pkgs/clean-pkg/src/genie/libs/clean/recovery/recovery.py b/pkgs/clean-pkg/src/genie/libs/clean/recovery/recovery.py index 6806ed408..ee64dae4f 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/recovery/recovery.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/recovery/recovery.py @@ -153,7 +153,8 @@ def _recovery_steps(device, clear_line=True, powercycler=True, 'ip_address': list, 'subnet_mask': str, 'gateway': str, - 'tftp_server': str + 'tftp_server': str, + Optional('ether_port'): int, }, Optional('recovery_password'): str, Optional('clear_line'): bool, @@ -282,8 +283,8 @@ def recovery_processor( # check if device is in any known state log.info(f'Check device {device.name} has valid unicon state.') try: - if device.is_ha: - log.info('Device is HA! checking all the subconnetions.') + if hasattr(device, 'is_ha') and device.is_ha: + log.info('Device is HA! checking all the subconnections.') for index, connection in enumerate(device.subconnections,1): bring_to_any_state(connection, connection_timeout) log.info(f'subconnection {index} is in {connection.state_machine.current_state}') diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/image_handler.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/image_handler.py new file mode 100644 index 000000000..5cfd21f58 --- /dev/null +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/image_handler.py @@ -0,0 +1,44 @@ +"""Cheetah/AP Image Handler Class""" + +from genie.libs.clean.stages.iosxe.image_handler import ImageHandler as IosxeImageHandler +from pyats.utils.fileutils import FileUtils + + +class ImageHandler(IosxeImageHandler): + + def __init__(self, device, images, *args, **kwargs): + super().__init__(device, images, *args, **kwargs) + + def update_image_references(self, section): + # section.parameters['image_mapping'] shall be saved in any + # stage that modifies the image name/path + if 'image_mapping' in section.parameters: + + for index, image in enumerate(self.image): + # change the saved image to the new image name/path + self.image[index] = section.parameters['image_mapping'].get(image, image) + + def update_stamp_ap_image(self, number=''): + """Update clean section 'stamp_ap_image' with image information""" + stamp_ap_image = self.device.clean.setdefault('stamp_ap_image' + number, {}) + if self.override_stage_images: + stamp_ap_image.update({'ap_image_path': self.image[0]}) + else: + stamp_ap_image.setdefault('ap_image_path', self.image[0]) + + def update_copy_to_linux(self, number=''): + """Update clean section 'copy_to_linux' with image information""" + files = self.device.clean.setdefault('copy_to_linux' + number, {}). \ + setdefault('origin', {}).setdefault('files', []) + files.clear() + files.extend(self.image) + + def update_load_ap_image(self, number=''): + """Update clean section 'load_ap_image' with image information""" + load_ap_image = self.device.clean.setdefault('load_ap_image' + number, {}) + if self.override_stage_images: + load_ap_image.update({'ap_image_path': self.image[0]}) + else: + load_ap_image.setdefault('ap_image_path', self.image[0]) + + \ No newline at end of file diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py index e553369cd..642f6a69b 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/stages.py @@ -5,13 +5,17 @@ # Python import logging import time +import traceback # Genie -from genie.metaparser.util.schemaengine import Optional +from genie.metaparser.util.schemaengine import Optional, Or from genie.utils.timeout import Timeout from genie.libs.clean import BaseStage from genie.metaparser.util.exceptions import InvalidCommandError +#pyATS +from pyats.utils.fileutils import FileUtils + # Unicon from unicon.core.errors import SubCommandFailure, ConnectionError, StateMachineError, TimeoutError @@ -175,3 +179,71 @@ def erase_configs(self, device, steps, login_credentials_alias, max_time=MAX_TIM timeout.sleep() else: step.failed("Failed to login to device after erasing the AP configs") + + +class LoadApImage(BaseStage): + """This stage loads new AP image + + Stage Schema + ------------ + load_ap_image: + ap_image_path (str): Absolute path where ap image is located + + server(str): Server alias which has AP image + + protocol(str): protocol through which AP image will be loaded + + max_time (int, optional): Maximum time for which this clean stage will try to clean ap. + Defaults to 1200 + + + + + Example + ------- + load_ap_image: + ap_image_path: "/auto/wnbu-groups-builds/FAST_BUNDLING/polaris_dev/6640/ap3g3-k9w8-tar.master-cisco.202309180209" + server: "tftp" + max_time: "1200" + """ + # ================= + # Argument Defaults + # ================= + MAX_TIME = 1200 + PROTOCOL = "http" + + # ============ + # Stage Schema + # ============ + schema = { + "server": str, + Optional("ap_image_path"): str, + Optional("protocol"): str, + Optional('max_time'): int, + } + + # ============================== + # Execution order of Stage steps + # ============================== + exec_order = [ + 'load_image' + ] + + def load_image(self, device, steps, ap_image_path, server, protocol=PROTOCOL, max_time=MAX_TIME): + try: + if not hasattr(device.testbed, 'servers'): + self.failed("Cannot find any servers in the testbed") + fu = FileUtils(testbed=device.testbed) + server_ip = fu.get_server_block(server).get('address') + username, password = fu.get_auth(server) + with steps.start("Load image in to device-{} and verify if its loaded correctly".format(device.name)) as step: + if not ap_image_path.startswith("/"): + ap_image_path = "/" + ap_image_path + full_image_path = "{}://{}:{}".format(protocol, server_ip, ap_image_path) + if not device.api.execute_archive_download(full_image_path, max_time, username, password, reload=True): + step.failed("Failed to load AP image") + except Exception as e: + log.exception(e) + self.failed("Failed to load image on AP") + + diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/tests/test_load_ap_image/test_load_ap_image.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/tests/test_load_ap_image/test_load_ap_image.py new file mode 100644 index 000000000..12aaed0f6 --- /dev/null +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/cheetah/ap/tests/test_load_ap_image/test_load_ap_image.py @@ -0,0 +1,52 @@ +import logging +import unittest +from unittest.mock import patch, Mock + + +from genie.libs.clean.stages.tests.utils import create_test_device + +from pyats.aetest.steps import Steps +from pyats.topology import loader + + +# Disable logging. It may be useful to comment this out when developing tests. +logging.disable(logging.CRITICAL) + + +class TestLoadApImage(unittest.TestCase): + + def setUp(self): + # Instantiate class object + + self.steps = Steps() + + # Instantiate device object. This also sets up commonly needed + # attributes and Mock objects associated with the device. + self.device = create_test_device('AP4001.7AB2.C1B6', os='cheetah', platform='ap') + self.device.testbed = loader.load({}) + self.device.testbed.servers = { + "credentials": { + "default": { + "username": "username", + "password": "password" + } + }, + "address": "1.1.1.1", + "protocol": "tftp", + "custom": { + "collection_upload_server": "tftp" + } + } + self.device.api.execute_archive_download = Mock() + + @patch('pyats.utils.fileutils.FileUtils') + def test_load_image(self, mock_file_utils): + # need to import here because we are mocking the pyats.cli.utils.cmd function + from genie.libs.clean.stages.cheetah.ap.stages import LoadApImage + + self.cls = LoadApImage() + + fu_instance = mock_file_utils.return_value + fu_instance.get_auth.return_value = ('username', 'password') + self.cls.load_image(self.device, self.steps, "/path/to/ap_image_path", self.device.testbed.servers) + self.device.api.execute_archive_download.assert_called_once() \ No newline at end of file diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/stages.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/stages.py index de651d0db..d1ff7b27e 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/stages.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/stages.py @@ -102,7 +102,7 @@ def install_image(self, steps, device, images, save_system_config=SAVE_SYSTEM_CO args=None, loop_continue=False, continue_timer=False), - Statement(pattern=r"FAILED:.* ", + Statement(pattern=r"FAILED:.*?$", action=None, loop_continue=False, continue_timer=False), @@ -111,7 +111,7 @@ def install_image(self, steps, device, images, save_system_config=SAVE_SYSTEM_CO try: device.reload('install add file {} activate commit'.format(images[0]), reply=install_add_one_shot_dialog, - append_error_pattern=['FAILED:.* '], + append_error_pattern=['FAILED:.*$'], timeout=install_timeout, device_recovery=False) except Exception as e: diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/tests/test_install_image.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/tests/test_install_image.py index 6d4b9fd5b..0dc92857f 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/tests/test_install_image.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/cat3k/tests/test_install_image.py @@ -112,6 +112,6 @@ def test_iosxe_install_image(self): cls.install_image(steps=steps, device=device, images=['sftp://server/image.bin']) device.reload.assert_has_calls([ - call('install add file sftp://server/image.bin activate commit', reply=ANY, timeout=500, append_error_pattern=['FAILED:.* '], device_recovery=False)]) + call('install add file sftp://server/image.bin activate commit', reply=ANY, timeout=500, append_error_pattern=['FAILED:.*$'], device_recovery=False)]) self.assertEqual(Passed, steps.details[0].result) \ No newline at end of file diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py index 7fb80b7a2..438d93c12 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/stages.py @@ -7,7 +7,7 @@ import time import os.path import logging -from ipaddress import IPv4Interface, IPv6Interface +from ipaddress import IPv4Address, IPv6Address, IPv4Interface, IPv6Interface # pyATS from pyats.async_ import pcall @@ -546,7 +546,7 @@ class InstallImage(BaseStage): feature of unicon. Defaults to True. error_pattern (list, optional): List of regex strings to check for errors. - Default: [r"FAILED:.* ",] + Default: [r"FAILED:.*?$",] : Any other arguments that the Unicon reload service supports @@ -570,7 +570,7 @@ class InstallImage(BaseStage): RELOAD_SERVICE_ARGS = { 'reload_creds': 'default', 'prompt_recovery': True, - 'error_pattern': [r"FAILED:.* ",], + 'error_pattern': [r"FAILED:.*?$",], } ISSU = False SKIP_BOOT_VARIABLE = False @@ -731,7 +731,7 @@ def install_image(self, steps, device, images, action='sendline(y)', loop_continue=True, continue_timer=False), - Statement(pattern=r"FAILED:.* ", + Statement(pattern=r"FAILED:.*?$", action=None, loop_continue=False, continue_timer=False), @@ -1651,10 +1651,14 @@ def copy_to_device(self, steps, device, origin, destination, image_version = out.get("version", {}).get("xe_version", "") image_match = re.search(image_version, file) if image_match: - image_mapping = self.history['CopyToDevice'].parameters.setdefault('image_mapping', {}) - image_mapping.update({origin['files'][index]: dest_file_path}) + # update image mapping 'as-if' we had copied the file + for dest in destinations: + dest_file_path = os.path.join(dest, os.path.basename(file)) + image_mapping = self.history['CopyToDevice'].parameters.setdefault('image_mapping', {}) + image_mapping.update({origin['files'][index]: dest_file_path}) + self.skipped(f"The image file provided is same as the current running image {image_version} on the device.\n\ - Setting the destination image to {dest_file_path}. Skipping the copy process.") + Setting the destination image to {dest_file_path}. Skipping the copy process.") if server: # Get filesize of image files on remote server @@ -2037,3 +2041,151 @@ def configure_replace(self, steps, device, path, file, config_replace_options=CO except Exception as e: step.failed("Configure replace failed", from_exception=e) + + +class Connect(BaseStage): + """This stage connects to the device that is being cleaned. +Stage Schema +------------ +connect: + via (str, optional): Which connection to use from the testbed file. Uses the + default connection if not specified. + alias (str, optional): Which connection alias to use from the testbed file. + timeout (int, optional): The timeout for the connection to complete in seconds. + Defaults to 200. + retry_timeout (int, optional): Overall timeout for retry mechanism in seconds. + Defaults to 0 which means no retry. + retry_interval (int, optional): Interval for retry mechanism in seconds. Defaults + to 0 which means no retry. +Example +------- +connect: + timeout: 60 +""" + + # ================= + # Argument Defaults + # ================= + VIA = None + ALIAS = None + TIMEOUT = 200 + RETRY_TIMEOUT = 0 + RETRY_INTERVAL = 0 + + # ============ + # Stage Schema + # ============ + schema = { + Optional('via', description="Which connection to use from the testbed file. Uses the default connection if not specified."): str, + Optional('alias', description="Which connection alias to use."): str, + Optional('timeout', description=f"The timeout for the connection to complete in seconds. Defaults to {TIMEOUT}.", default=TIMEOUT): Or(str, int), + Optional('retry_timeout', description=f"Overall timeout for retry mechanism in seconds. Defaults to {RETRY_TIMEOUT} which means no retry.", default=RETRY_TIMEOUT): Or(str, int, float), + Optional('retry_interval', description=f"Interval for retry mechanism in seconds. Defaults to {RETRY_INTERVAL} which means no retry.", default=RETRY_INTERVAL): Or(str, int, float), + } + + # ============================== + # Execution order of Stage steps + # ============================== + exec_order = [ + 'connect' + ] + + def connect(self, steps, device, via=VIA, alias=ALIAS, timeout=TIMEOUT, + retry_timeout=RETRY_TIMEOUT, retry_interval=RETRY_INTERVAL): + + with steps.start("Connecting to the device") as step: + + log.info('Checking connection to device: %s' % device.name) + + # Create a timeout that will loop + retry_timeout = Timeout(float(retry_timeout), float(retry_interval)) + retry_timeout.one_more_time = True + # Without this we see 'Performing the last attempt' even if retry + # is not being used. + retry_timeout.disable_log = True + + while retry_timeout.iterate(): + retry_timeout.disable_log = False + + # mit=True is used to make sure we do not initialize the connection + # and we can check if the device is in rommon. + device.instantiate(connection_timeout=timeout, + learn_hostname=True, + prompt_recovery=True, + via=via, + alias=alias, + mit=True) + try: + if alias: + getattr(device, alias).connect() + else: + device.connect() + except Exception: + log.error("Connection to the device failed", exc_info=True) + device.destroy_all() + # Loop + else: + step.passed("Successfully connected".format(device.name)) + # Don't loop + + retry_timeout.sleep() + + step.failed("Could not connect. Scroll up for tracebacks.") + + with steps.start(f'Checking the current state of the device: {device.name}') as step: + + log.info(f'Checking the current state of the device: {device.name}') + + state = "" + try: + # To check the state for HA devices + if device.is_ha and hasattr(device, 'subconnections'): + # HA recovery is not yet implemented fully. + if isinstance(device.subconnections, list): + states = list(set([con.state_machine.current_state for con in device.subconnections])) + if 'rommon' in states: + step.failed(f'HA device connection is in rommon state, need to recover device.') + else: + # To check the state for single rp device + state = device.state_machine.current_state + except Exception as e: + log.warning(f'There is no connection in device.subconnections: {e}') + + if state == "rommon": + + with steps.start("Setting the rommon variables") as step: + + log.info('Setting the rommon variables for TFTP boot') + + try: + device.api.configure_rommon_tftp() + except Exception as e: + step.passx(f'Failed to set rommon variables. {e}') + else: + log.info("Successfully set the rommon variables") + + with steps.start("Booting the device from rommon") as step: + + log.info('Booting the device from rommon') + + try: + # Gets the recovery details from clean yaml + device.api.device_rommon_boot() + except Exception as e: + step.passx(f'Failed to boot device from rommon. {e}') + else: + log.info("Successfully booted the device from rommon.") + + # set mit to False to initialize the connection + device.default.mit=False + with steps.start("Initialize the device connection") as step: + + try: + device.connection_provider.init_connection() + except Exception as e: + step.failed(f'Failed to initialize the connection. {e}') + else: + step.passed("Successfully connected to the device") + + + diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_connect.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_connect.py new file mode 100644 index 000000000..d5170825a --- /dev/null +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_connect.py @@ -0,0 +1,69 @@ +import unittest +from unittest.mock import MagicMock, Mock, call, patch +import logging + +from pyats.aetest.steps import Steps +from pyats.results import Passed, Failed +from pyats.aetest.signals import TerminateStepSignal +from pyats.topology import loader +from genie.libs.clean.stages.iosxe.stages import Connect +from unicon.plugins.tests.mock.mock_device_iosxe import MockDeviceTcpWrapperIOSXE +import unicon + +unicon.settings.Settings.POST_DISCONNECT_WAIT_SEC = 0 +unicon.settings.Settings.GRACEFUL_DISCONNECT_WAIT_SEC = 0.2 + +logger = logging.getLogger(__name__) + +class TestIosXEConnect(unittest.TestCase): + """ Run unit testing on a mocked IOSXE ASR HA device """ + + @classmethod + def setUpClass(self): + self.md = MockDeviceTcpWrapperIOSXE(hostname='R1', port=0, state='general_enable') + self.md.start() + testbed = """ + testbed: + servers: + http: + dynamic: true + protocol: http + ftp: + dynamic: true + protocol: ftp + tftp: + dynamic: true + protocol: tftp + devices: + R1: + os: iosxe + type: router + tacacs: + username: cisco + passwords: + tacacs: cisco + connections: + defaults: + class: unicon.Unicon + a: + protocol: telnet + ip: 127.0.0.1 + port: {} + """.format(self.md.ports[0]) + + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['R1'] + self.device.connect(mit=True) + + @classmethod + def tearDownClass(self): + self.device.disconnect() + self.md.stop() + + def test_connect(self): + steps = Steps() + self.connect = Connect() + self.connect(steps=steps, device=self.device) + self.assertEqual(Passed, steps.details[0].result) + + diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_copy_to_device.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_copy_to_device.py index 2be55a8f4..6c501051f 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_copy_to_device.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_copy_to_device.py @@ -376,7 +376,11 @@ def test_copy_to_device_verify_running_image_1(self): vrf= 'Mgmt-vrf' ) - + self.assertEqual(self.cls.history['CopyToDevice'].parameters['image_mapping'], + {'/path/cat9k_iosxe.TEST_LATEST_IMAGE_20230606.SSA.bin': + 'bootflash:/cat9k_iosxe.TEST_LATEST_IMAGE_20230606.SSA.bin'}) + + def test_copy_to_device_verify_running_image_2(self): """ To Test if the device is in bundle mode and user passed install_image stage in clean file @@ -441,12 +445,12 @@ def __call__(self, cmd, *args, **kwargs): self.device.parse = Mock(return_value={'version': {'xe_version': 'test.bin',\ 'version_short': '17.7'}, 'switch_num': {'1': {'ports': '120', 'sw_image': 'CAT9K_IOSXE', 'mode': 'BUNDLE'}}}) - + # Mock the apis to simulate the scenario self.device.api.free_up_disk_space = Mock(return_value=True) - + self.device.api.verify_file_exists = Mock(return_value=True) - + # Call the method to be tested (clean step inside class) self.cls.copy_to_device( @@ -460,9 +464,9 @@ def __call__(self, cmd, *args, **kwargs): ), protocol='tftp', ) - + skipped_reason = 'The device is in bundle mode and install_image stage is passed in clean file. Skipping the verify running image check.' - + # Check that the result is expected self.assertEqual("Verify the image running in the device", steps.details[1].name) self.assertEqual(Skipped, steps.details[1].result) diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_install_image.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_install_image.py index dacc41df8..84475db0c 100644 --- a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_install_image.py +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxe/tests/test_install_image.py @@ -331,7 +331,7 @@ def test_iosxe_install_image_pass(self): device.reload.assert_has_calls([ call('install add file sftp://server/image.bin activate commit', reply=ANY, - reload_creds='default', prompt_recovery=True, error_pattern=['FAILED:.* '], + reload_creds='default', prompt_recovery=True, error_pattern=['FAILED:.*?$'], timeout=500, device_recovery=False) ]) self.assertEqual(Passed, steps.details[0].result) @@ -358,7 +358,7 @@ def test_iosxe_install_image_grub_boot_image(self): device.reload.assert_has_calls([ call('install add file sftp://server/image.bin activate commit', reply=ANY, - reload_creds='default', prompt_recovery=True, error_pattern=['FAILED:.* '], + reload_creds='default', prompt_recovery=True, error_pattern=['FAILED:.*?$'], grub_boot_image='packages.conf', device_recovery=False, timeout=500) ]) self.assertEqual(Passed, steps.details[0].result) diff --git a/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxr/tests/test_copy_to_device.py b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxr/tests/test_copy_to_device.py new file mode 100644 index 000000000..cf11237af --- /dev/null +++ b/pkgs/clean-pkg/src/genie/libs/clean/stages/iosxr/tests/test_copy_to_device.py @@ -0,0 +1,301 @@ +import unittest +from unittest.mock import Mock, call, ANY + +from random import randint + +from genie.libs.clean.stages.stages import CopyToDevice +from genie.libs.clean.stages.tests.utils import create_test_device + +from pyats.aetest.steps import Steps +from pyats.results import Passed +from pyats.topology import Testbed +from pyats.datastructures import AttrDict + + +class VerifyCopyToDevice(unittest.TestCase): + + def setUp(self): + # Instantiate class object + self.cls = CopyToDevice() + self.cls.history = {'CopyToDevice': AttrDict({'parameters': {}})} + + # Instantiate device object. This also sets up commonly needed + # attributes and Mock objects associated with the device. + self.device = create_test_device('PE1', os='iosxr') + + def test_copy_to_device(self): + class MockExecute: + + def __init__(self, *args, **kwargs): + self.data = { + 'dir bootflash:': iter([ + ''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''', + f''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260155 -rw-rw-rw-. 1 4096 Dec 4 11:30 test.bin + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''' + ]), + 'copy http://127.0.0.1//path/test.bin bootflash:/test.bin': iter(['Successfully copied']), + } + + def __call__(self, cmd, *args, **kwargs): + output = next(self.data[cmd]) + return output + + mock_execute = MockExecute() + + # And we want the execute method to be mocked with device console output. + self.device.execute = Mock(side_effect=mock_execute) + + steps = Steps() + + testbed = Testbed('mytb', servers={ + 'server1': { + 'address': '127.0.0.1', + 'protocol': 'http' + } + }) + + self.device.testbed = testbed + + # Call the method to be tested (clean step inside class) + self.cls.copy_to_device( + steps=steps, device=self.device, + origin=dict( + files=[f'/path/test.bin'], + hostname='server1' + ), + destination=dict( + directory='bootflash:' + ), + protocol='http', + verify_running_image=False + ) + + # Check that the result is expected + self.assertEqual(Passed, steps.details[0].result) + self.device.execute.assert_has_calls([ + call('dir bootflash:'), + call(f'copy http://127.0.0.1//path/test.bin bootflash:/test.bin', + prompt_recovery=False, timeout=300, reply=ANY, + error_pattern=ANY), + call('dir bootflash:') + ]) + + + def test_copy_to_device_long_filename(self): + filler = 'a' * 125 + + class MockExecute: + + def __init__(self, *args, **kwargs): + self.data = { + 'dir bootflash:': iter([ + ''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''', + f''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260155 -rw-rw-rw-. 1 4096 Dec 4 11:30 {filler}test.bin + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''' + ]), + f'copy http://127.0.0.1//path/{filler}test.bin bootflash:/{filler}test.bin': iter(['Successfully copied']) + } + + def __call__(self, cmd, *args, **kwargs): + output = next(self.data[cmd]) + return output + + mock_execute = MockExecute() + + # And we want the execute method to be mocked with device console output. + self.device.execute = Mock(side_effect=mock_execute) + + steps = Steps() + + testbed = Testbed('mytb', servers={ + 'server1': { + 'address': '127.0.0.1', + 'protocol': 'http' + } + }) + + self.device.testbed = testbed + + # Call the method to be tested (clean step inside class) + self.cls.copy_to_device( + steps=steps, device=self.device, + origin=dict( + files=[f'/path/{filler}test.bin'], + hostname='server1' + ), + destination=dict( + directory='bootflash:' + ), + protocol='http', + verify_running_image=False + ) + + # Check that the result is expected + self.assertEqual(Passed, steps.details[0].result) + self.device.execute.assert_has_calls([ + call('dir bootflash:'), + call(f'copy http://127.0.0.1//path/{filler}test.bin bootflash:/{filler}test.bin', + prompt_recovery=False, timeout=300, reply=ANY, + error_pattern=ANY), + call('dir bootflash:') + ]) + + def test_copy_to_device_unique_file_name(self): + unique_number = randint(1, 100) + + class MockExecute: + + def __init__(self, *args, **kwargs): + self.data = { + 'dir bootflash:': iter([ + ''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''', + f''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260155 -rw-rw-rw-. 1 4096 Dec 4 11:30 test_{unique_number}.bin + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''' + ]), + f'copy http://127.0.0.1//path/test.bin bootflash:/test_{unique_number}.bin': iter(['Successfully copied']) + } + + def __call__(self, cmd, *args, **kwargs): + output = next(self.data[cmd]) + return output + + mock_execute = MockExecute() + + # And we want the execute method to be mocked with device console output. + self.device.execute = Mock(side_effect=mock_execute) + + steps = Steps() + + testbed = Testbed('mytb', servers={ + 'server1': { + 'address': '127.0.0.1', + 'protocol': 'http' + } + }) + + self.device.testbed = testbed + + # Call the method to be tested (clean step inside class) + self.cls.copy_to_device( + steps=steps, device=self.device, + origin=dict( + files=[f'/path/test.bin'], + hostname='server1' + ), + destination=dict( + directory='bootflash:' + ), + protocol='http', + unique_file_name=True, + unique_number=unique_number, + verify_running_image=False + ) + + # Check that the result is expected + self.assertEqual(Passed, steps.details[0].result) + self.device.execute.assert_has_calls([ + call('dir bootflash:'), + call(f'copy http://127.0.0.1//path/test.bin bootflash:/test_{unique_number}.bin', + prompt_recovery=False, timeout=300, reply=ANY, + error_pattern=ANY), + call('dir bootflash:') + ]) + + def test_copy_to_device_rename_images(self): + class MockExecute: + + def __init__(self, *args, **kwargs): + self.data = { + 'dir bootflash:': iter([ + ''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''', + ''' + Directory of bootflash:/ + 260234 -rw-rw-rw-. 1 1234 Dec 4 11:25 ds_stats.txt + 260155 -rw-rw-rw-. 1 4096 Dec 4 11:30 test.bin_0 + 260207 drwx------. 2 4096 Nov 30 20:46 repodata + 6961520 kbytes total (2014552 kbytes free) + ''' + ]), + 'copy http://127.0.0.1//my/test.bin bootflash:': iter(['']), + f'copy http://127.0.0.1//path/test.bin bootflash:/test.bin_0': iter(['Successfully copied']) + } + + def __call__(self, cmd, *args, **kwargs): + output = next(self.data[cmd]) + return output + + mock_execute = MockExecute() + + # And we want the execute method to be mocked with device console output. + self.device.execute = Mock(side_effect=mock_execute) + + steps = Steps() + + testbed = Testbed('mytb', servers={ + 'server1': { + 'address': '127.0.0.1', + 'protocol': 'http' + } + }) + + self.device.testbed = testbed + + # Call the method to be tested (clean step inside class) + self.cls.copy_to_device( + steps=steps, device=self.device, + origin=dict( + files=[f'/path/test.bin'], + hostname='server1' + ), + destination=dict( + directory='bootflash:' + ), + protocol='http', + rename_images='test.bin', + verify_running_image=False + ) + + # Check that the result is expected + self.assertEqual(Passed, steps.details[0].result) + self.device.execute.assert_has_calls([ + call('dir bootflash:'), + call(f'copy http://127.0.0.1//path/test.bin bootflash:/test.bin_0', + prompt_recovery=False, timeout=300, reply=ANY, + error_pattern=ANY), + call('dir bootflash:') + ]) diff --git a/pkgs/conf-pkg/changelog/2023/november.rst b/pkgs/conf-pkg/changelog/2023/november.rst index c9c9f2a3a..67fd9e703 100644 --- a/pkgs/conf-pkg/changelog/2023/november.rst +++ b/pkgs/conf-pkg/changelog/2023/november.rst @@ -1,3 +1,16 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* Interface section + * Modified __init__.py + * Updated the switch port modes to cover private_vlan access and trunk modes + * Modified NXOS EthernetInterface + * Updated the file with CLI's to handle private vlan configuration +* Vlan section + * Modified NXOS Vlan + * Updated the file with CLI's to handle private vlan configuration + -------------------------------------------------------------------------------- New -------------------------------------------------------------------------------- diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/__init__.py b/pkgs/conf-pkg/changelog/2024/february.rst similarity index 100% rename from pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/__init__.py rename to pkgs/conf-pkg/changelog/2024/february.rst diff --git a/pkgs/conf-pkg/changelog/2024/january.rst b/pkgs/conf-pkg/changelog/2024/january.rst new file mode 100644 index 000000000..976ed2545 --- /dev/null +++ b/pkgs/conf-pkg/changelog/2024/january.rst @@ -0,0 +1,21 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* hltapi + * Modified traffic_control API to handle calls without mode argument + +* nxos + * macsec + * added new command 'ppk crypto-qkd-profile' under macsec policy config + + +-------------------------------------------------------------------------------- + New +-------------------------------------------------------------------------------- + +* nxos + * Added crypto conf + * added crypto qkd cli for conf model + + diff --git a/pkgs/conf-pkg/src/genie/libs/conf/__init__.py b/pkgs/conf-pkg/src/genie/libs/conf/__init__.py index 5e50089eb..7948d47b6 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/__init__.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/__init__.py @@ -12,7 +12,7 @@ ''' # metadata -__version__ = '23.11' +__version__ = '24.2' __author__ = 'Cisco Systems Inc.' __contact__ = ['pyats-support@cisco.com', 'pyats-support-ext@cisco.com'] __copyright__ = 'Copyright (c) 2018, Cisco Systems Inc.' diff --git a/pkgs/conf-pkg/src/genie/libs/conf/crypto/__init__.py b/pkgs/conf-pkg/src/genie/libs/conf/crypto/__init__.py new file mode 100644 index 000000000..4b7ef0f2b --- /dev/null +++ b/pkgs/conf-pkg/src/genie/libs/conf/crypto/__init__.py @@ -0,0 +1 @@ +from .crypto import * \ No newline at end of file diff --git a/pkgs/conf-pkg/src/genie/libs/conf/crypto/crypto.py b/pkgs/conf-pkg/src/genie/libs/conf/crypto/crypto.py new file mode 100644 index 000000000..47994ad68 --- /dev/null +++ b/pkgs/conf-pkg/src/genie/libs/conf/crypto/crypto.py @@ -0,0 +1,180 @@ + +# Python +from enum import Enum + +# Genie +from genie.decorator import managedattribute +from genie.libs.conf.base import MAC +from genie.libs.conf.base.feature import consolidate_feature_args +from genie.conf.base.base import DeviceFeature, InterfaceFeature, LinkFeature +from genie.conf.base.attributes import DeviceSubAttributes, SubAttributesDict,\ + AttributesHelper, KeyedSubAttributes,\ + InterfaceSubAttributes + +__all__ = ( + 'Crypto', +) + +# Crypto +# +-- DeviceAttributes +# +-- CryptoQkdAttributes + + +class TLS_AUTH_TYPE(Enum): + psk = 'psk' + trustpoint = 'trustpoint' + + +class Crypto(DeviceFeature, LinkFeature): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # ========================================================================== + # CONF CLASS STRUCTURE + # ========================================================================== + + # +- DeviceAttributes + class DeviceAttributes(DeviceSubAttributes): + + # +- DeviceAttributes + # +- CryptoQkdAttributes + class CryptoQkdAttributes(KeyedSubAttributes): + def __init__(self, parent, key): + self.crypto_qkd_name=key + super().__init__(parent) + + + crypto_qkd_attr = managedattribute( + name='crypto_qkd_attr', + read_only=True, + doc=CryptoQkdAttributes.__doc__) + + @crypto_qkd_attr.initter + def crypto_qkd_attr(self): + return SubAttributesDict(self.CryptoQkdAttributes, parent=self) + + device_attr = managedattribute( + name='device_attr', + read_only=True, + doc=DeviceAttributes.__doc__) + + @device_attr.initter + def device_attr(self): + return SubAttributesDict(self.DeviceAttributes, parent=self) + + # ===========================================# + # managedattributes + # ===========================================# + # crytpopqc feature enable attribute + enabled = managedattribute( + name='enabled', + default=None, + type=(None, managedattribute.test_istype(bool))) + + qkd_profile_name = managedattribute(name='qkd_profile_name', + default=None, + type=(None, managedattribute.test_istype(str)), + doc='Configure crypto qkd profile') + + kme_server_ip = managedattribute(name='kme_server_ip', + default=None, + type=(None, managedattribute.test_istype(str)), + doc='Configure kme server ip') + + kme_server_http_port = managedattribute(name='kme_server_http_port', + default=None, + type=(None, managedattribute.test_istype(int)), + doc='Configure kme server http port') + + http_proxy_server = managedattribute(name='http_proxy_server', + default=None, + type=(None, managedattribute.test_istype(str)), + doc='Configure http proxy server') + + http_proxy_port = managedattribute(name='http_proxy_port', + default=None, + type=(None, managedattribute.test_istype(int)), + doc='Configure http proxy port') + + + tls_auth_type = managedattribute(name='tls_auth_type', + default=None, + type=(None, TLS_AUTH_TYPE), + doc='Configure transport tls authentication type') + + tls_trustpoint_name = managedattribute(name='tls_trustpoint_name', + default=None, + type=(None, managedattribute.test_istype(str)), + doc='Configure transport tls trustpoint name ') + + tls_trustpoint_ignore_certificate = managedattribute(name='tls_trustpoint_ignore_certificate', + default=None, + type=(None, managedattribute.test_istype(bool)), + doc='Configure transport tls trustpoint ignore certificate') + + tls_pks_key_id = managedattribute(name='tls_pks_key_id', + default=None, + type=(None, managedattribute.test_istype(int)), + doc='Configure transport tls pks key id') + + tls_pks_key_string = managedattribute(name='tls_pks_key_string', + default=None, + type=(None, managedattribute.test_istype(str)), + doc='Configure transport tls pks key string') + + + source_interface = managedattribute(name='source_interface', + default=None, + type=(None, managedattribute.test_istype(str)), + doc='Configure crypto source interface') + + + # ========================================================= + # build_config + # ========================================================= + def build_config(self, + devices=None, + interfaces=None, + links=None, + apply=True, + attributes=None, + **kwargs): + attributes = AttributesHelper(self, attributes) + cfgs = {} + + devices, interfaces, links = \ + consolidate_feature_args(self, devices, interfaces, links) + + for key, sub, attributes2 in attributes.mapping_items('device_attr', + keys=devices, + sort=True): + cfgs[key] = sub.build_config(apply=False, attributes=attributes2) + if apply: + for device_name, cfg in sorted(cfgs.items()): + self.testbed.config_on_devices(cfg, fail_invalid=True) + else: + return cfgs + + def build_unconfig(self, + devices=None, + interfaces=None, + links=None, + apply=True, + attributes=None, + **kwargs): + attributes = AttributesHelper(self, attributes) + cfgs = {} + + devices, interfaces, links = \ + consolidate_feature_args(self, devices, interfaces, links) + for key, sub, attributes2 in attributes.mapping_items('device_attr', + keys=devices, + sort=True): + cfgs[key] = sub.build_unconfig(apply=False, attributes=attributes2) + + if apply: + for device_name, cfg in sorted(cfgs.items()): + self.testbed.config_on_devices(cfg, fail_invalid=True) + else: + return cfgs diff --git a/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/__init__.py b/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/__init__.py new file mode 100644 index 000000000..e5bf36e79 --- /dev/null +++ b/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/__init__.py @@ -0,0 +1,6 @@ +try: + from genie import abstract + abstract.declare_token(__name__) +except Exception as e: + import warnings + warnings.warn('Could not declare abstraction token: ' + str(e)) \ No newline at end of file diff --git a/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/crypto.py b/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/crypto.py new file mode 100644 index 000000000..32fe38b7f --- /dev/null +++ b/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/crypto.py @@ -0,0 +1,132 @@ +''' + Macsec Genie Conf Object Implementation for NXOS - CLI. +''' + +# Python +from abc import ABC + +#Genie +from genie.conf.base.attributes import AttributesHelper +from genie.conf.base.cli import CliConfigBuilder +from genie.conf.base.config import CliConfig + + +# Macsec +# +- DeviceAttributes +# +- MacsecPolicyAttributes + +class Crypto(ABC): + class DeviceAttributes(ABC): + def build_config(self, apply=True, attributes=None, unconfig=False, + **kwargs): + assert not kwargs, kwargs + attributes = AttributesHelper(self, attributes) + configurations = CliConfigBuilder(unconfig=unconfig) + #self.interface_config = CliConfigBuilder(unconfig=unconfig) + + # feature cryptopqc + if attributes.value('enabled'): + if unconfig is False: + configurations.append_line( + attributes.format('feature cryptopqc')) + + # Make sure that only enabled was provided in attributes + # If wildcard, then delete everything + elif unconfig is True and\ + attributes.attributes == {'enabled': {True: None}} or \ + attributes.iswildcard: + configurations.append_line('no feature cryptopqc', raw=True) + if apply: + if configurations: + self.device.configure(configurations) + else: + return CliConfig(device=self.device, unconfig=unconfig, + cli_config=configurations) + + # +- DeviceAttributes + # +- CryptoQkdAttributes + for sub, attributes2 in attributes.mapping_values('crypto_qkd_attr', + sort=True, + keys=self.crypto_qkd_attr): + configurations.append_block( + sub.build_config(apply=False, + attributes=attributes2, + unconfig=unconfig)) + + if apply: + if configurations: + self.device.configure(configurations) + else: + return CliConfig(device=self.device, unconfig=unconfig, + cli_config=configurations) + + def build_unconfig(self, apply=True, attributes=None, **kwargs): + return self.build_config(apply=apply, attributes=attributes, + unconfig=True, **kwargs) + + # +- DeviceAttributes + # +- CryptoQkdAttributes + class CryptoQkdAttributes(ABC): + def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): + assert not apply + assert not kwargs, kwargs + attributes = AttributesHelper(self, attributes) + configurations = CliConfigBuilder(unconfig=unconfig) + + # crypto qkd + with configurations.submode_context( + attributes.format('crypto qkd profile {crypto_qkd_name}', force=True)): + + if unconfig and attributes.iswildcard: + configurations.submode_unconfig() + + # crypto qkd + # kme server 10.10.20.1 + # OR + # kme server ipv4 10.10.20.1 port 6000 + # OR + # kme server 10.10.20.1 port 6000 + + if attributes.value('kme_server_ip'): + server_ip = attributes.value('kme_server_ip') + cmd = f'kme server {server_ip} ' + if attributes.value('kme_server_ip_version'): + server_ip_version = attributes.value('kme_server_ip_version') + cmd += server_ip_version.value + if attributes.value('kme_server_http_port'): + http_port = attributes.value('kme_server_http_port') + cmd += f' port {http_port}' + + configurations.append_line(attributes.format(cmd)) + + #crypto qkd + # transport tls authentication-type trustpoint tp1 + # OR + # transport tls authentication-type trustpoint tp1 ignore-certificate + # OR + # transport tls authentication-type psk key-id 20 key test1 + # transport tls authentication-type trustpoint tp1 + if attributes.value('tls_auth_type'): + tls_type = attributes.value('tls_auth_type') + if tls_type.value == 'trustpoint' and attributes.value('tls_trustpoint_name'): + trustpoint_name = attributes.value('tls_trustpoint_name') + if attributes.value('tls_trustpoint_ignore_certificate'): + configurations.append_line(attributes.format(f'transport tls authentication-type {tls_type.value} {trustpoint_name} ignore-certificate')) + else: + configurations.append_line(attributes.format(f'transport tls authentication-type {tls_type.value} {trustpoint_name}')) + + if tls_type.value == 'psk': + if attributes.value('tls_pks_key_id') and attributes.value('tls_pks_key_string'): + key_id = attributes.value('tls_pks_key_id') + key_string = attributes.value('tls_pks_key_string') + configurations.append_line(attributes.format( + f'transport tls authentication-type {tls_type.value} key_id {key_id} key {key_string}' + ) + ) + + return str(configurations) + + def build_unconfig(self, apply=True, attributes=None, **kwargs): + return self.build_config(apply=apply, attributes=attributes, + unconfig=True, **kwargs) + diff --git a/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/test/test_crypto.py b/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/test/test_crypto.py new file mode 100644 index 000000000..d5e302f3c --- /dev/null +++ b/pkgs/conf-pkg/src/genie/libs/conf/crypto/nxos/test/test_crypto.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python + +# import python +import unittest + +# import genie +from genie.tests.conf import TestCase +from genie.conf import Genie +from genie.conf.base import Testbed, Device, Interface + +# import genie.libs +from genie.libs.conf.crypto import Crypto + +class test_crypto(TestCase): + def test_crypto_feature_cfg(self): + Genie.testbed = testbed = Testbed() + dev1 = Device(testbed=testbed, name='PE1', os='nxos') + + crypto = Crypto() + + self.assertIs(crypto.testbed, testbed) + dev1.add_feature(crypto) + + crypto.device_attr[dev1].enabled = True + + cfgs = crypto.build_config(apply=False) + self.assertCountEqual(cfgs.keys(), [dev1.name]) + self.maxDiff = None + + self.assertMultiLineEqual( + str(cfgs[dev1.name]), '\n'.join([ + 'feature cryptopqc' + ])) + + un_cfgs = crypto.build_unconfig(apply=False) + self.assertCountEqual(un_cfgs.keys(), [dev1.name]) + self.maxDiff = None + self.assertEqual(str(un_cfgs[dev1.name]), + '\n'.join(['no feature cryptopqc'])) + + def test_crypto_qkd_cfg(self): + Genie.testbed = testbed = Testbed() + dev1 = Device(testbed=testbed, name='PE1', os='nxos') + + crypto = Crypto() + + self.assertIs(crypto.testbed, testbed) + dev1.add_feature(crypto) + + crypto.device_attr[dev1].crypto_qkd_attr['QKD1'].kme_server_ip = '172.160.10.10' + crypto.device_attr[dev1].crypto_qkd_attr['QKD1'].kme_server_http_port = 6000 + crypto.device_attr[dev1].crypto_qkd_attr['QKD1'].tls_auth_type = 'trustpoint' + crypto.device_attr[dev1].crypto_qkd_attr['QKD1'].tls_trustpoint_name = 'tp1' + + + cfgs = crypto.build_config(apply=False) + self.assertCountEqual(cfgs.keys(), [dev1.name]) + self.maxDiff = None + + self.assertMultiLineEqual( + str(cfgs[dev1.name]), '\n'.join([ + 'crypto qkd profile QKD1', + ' kme server 172.160.10.10 port 6000', + ' transport tls authentication-type trustpoint tp1', + ' exit' + ])) + + un_cfgs = crypto.build_unconfig(apply=False) + self.assertCountEqual(un_cfgs.keys(), [dev1.name]) + self.maxDiff = None + self.assertEqual(str(un_cfgs[dev1.name]), + '\n'.join(['no crypto qkd profile QKD1'])) + + +if __name__ == '__main__': + unittest.main() diff --git a/pkgs/conf-pkg/src/genie/libs/conf/device/hltapi/device.py b/pkgs/conf-pkg/src/genie/libs/conf/device/hltapi/device.py index ebdc93ed0..eb2b83dc0 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/device/hltapi/device.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/device/hltapi/device.py @@ -353,7 +353,14 @@ def is_traffic_running(self, **kwargs): hltkl = self.traffic_control('poll', **kwargs) return not tcl.cast_boolean(hltkl.stopped) - def traffic_control(self, mode, *, ports=None, wait=True, duration=None, clear_on_start=True, stop_counting=True, **kwargs): + def traffic_control(self, mode=None, ports=None, wait=True, duration=None, clear_on_start=True, stop_counting=True, **kwargs): + + if mode is None: + if ports: + return self.default.traffic_control(ports=ports, **kwargs) + else: + return self.default.traffic_control(**kwargs) + hltkl = None # Returned value from genie.libs.conf.device.agilent import Device as AgilentDevice diff --git a/pkgs/conf-pkg/src/genie/libs/conf/device/tests/test_device.py b/pkgs/conf-pkg/src/genie/libs/conf/device/tests/test_device.py index b7ab9233b..75cd6aaa0 100755 --- a/pkgs/conf-pkg/src/genie/libs/conf/device/tests/test_device.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/device/tests/test_device.py @@ -1,7 +1,7 @@ #!/usr/bin/env python import unittest -from unittest.mock import Mock +from unittest.mock import Mock, MagicMock, call from genie.tests.conf import TestCase from genie.conf import Genie @@ -88,6 +88,13 @@ def test_init(self): self.assertIsInstance(dev1, HltapiDevice) self.assertIsInstance(dev1, SpirentDevice) + def test_htlapi_traffic_control(self): + dev = Device(name='ixia', os='hltapi') + dev.default = MagicMock() + dev.traffic_control(param='value') + dev.default.traffic_control.assert_has_calls([call(param='value')]) + + if __name__ == '__main__': unittest.main() diff --git a/pkgs/conf-pkg/src/genie/libs/conf/interface/__init__.py b/pkgs/conf-pkg/src/genie/libs/conf/interface/__init__.py index f1202a7f7..a3cccdc28 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/interface/__init__.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/interface/__init__.py @@ -53,6 +53,8 @@ class L2_type(Option): DOT1Q_TUNNEL = 'dot1q-tunnel' FEX_FABRIC = 'fex-fabric' PRIVATE_VLAN = 'private-vlan' + PRIVATE_VLAN_ACCESS = 'private-vlan host' + PRIVATE_VLAN_TRUNK = 'private-vlan trunk' class Medium(Option): # Create the same for p2p or broadcast @@ -440,6 +442,8 @@ class SWITCHPORTMODE(Enum): dot1q_tunnel = 'dot1q-tunnel' fex_fabric = 'fex-fabric' private_vlan = 'private-vlan' + private_vlan_access = 'private-vlan host' + private_vlan_trunk = 'private-vlan trunk' trunk = 'trunk' switchport_mode = managedattribute( diff --git a/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/interface.py b/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/interface.py index f5d19b1c0..10796e71c 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/interface.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/interface.py @@ -28,6 +28,7 @@ AttributesHelper, UnsupportedAttributeWarning from genie.conf.base.cli import CliConfigBuilder + from genie.libs.conf.base import \ MAC, \ IPv4Address, IPv4Interface, \ @@ -153,7 +154,6 @@ def build_config(self, apply=True, attributes=None, unconfig=False, assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) - with self._build_config_create_interface_submode_context(\ configurations): self._build_config_interface_submode(\ @@ -292,7 +292,6 @@ def _build_config_interface_submode(self, configurations, \ attributes.format('no switchport'), unconfig_cmd='switchport') - # configure switchport realted configurations configurations.append_line( attributes.format('switchport mode {switchport_mode}')) @@ -557,8 +556,12 @@ class Mode(Enum): trunk_allowed_vlan = None # int trunk_native_vlan = None # int + primary_vlan = None # int + secondary_vlan = None # int + def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): + assert not apply assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) @@ -600,6 +603,7 @@ def build_config(self, apply=True, attributes=None, unconfig=False, # nxos: interface / switchport trunk native vlan 1 configurations.append_line('switchport trunk native vlan {trunk_native_vlan}') + # nxos: interface / switchport autostate exclude # nxos: interface / switchport autostate exclude vlan 1 # nxos: interface / switchport autostate exclude vlan add 1 @@ -741,6 +745,13 @@ def _build_config_interface_submode(self, configurations, attributes, unconfig): attributes.format(cmd), unconfig_cmd=attributes.format(uncmd)) + # private vlan access port + if self.switchport_mode == str(L2_type.PRIVATE_VLAN_ACCESS): + + configurations.append_line( + attributes.format('switchport private-vlan host-association {primary_vlan} {secondary_vlan}'), + unconfig_cmd='no switchport private-vlan host-association') + # speed auto # duplex auto auto_negotiate = attributes.value('auto_negotiate') @@ -995,7 +1006,9 @@ def _build_config_interface_submode(self, configurations, attributes, unconfig): configurations.append_line( attributes.format('mac address-table aging-time {mac_aging}'), unconfig_cmd='no mac address-table aging') - + configurations.append_line( + attributes.format('private-vlan mapping {private_vlan_mapping}'), + unconfig_cmd='no private-vlan mapping') # -- VLAN # nxos: interface / autostate # nxos: interface / carrier-delay <0-60> diff --git a/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/tests/test_interface.py b/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/tests/test_interface.py index c9aacb61c..2e1a98ac3 100755 --- a/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/tests/test_interface.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/interface/nxos/tests/test_interface.py @@ -14,7 +14,7 @@ from genie.libs.conf.base import MAC, IPv4Interface, IPv6Interface, IPv4Address, IPv6Address from genie.libs.conf.interface import Layer, L2_type, IPv4Addr, IPv6Addr,NveInterface from genie.libs.conf.vrf import Vrf -from genie.libs.conf.interface.nxos import Interface +from genie.libs.conf.interface.nxos import Interface, EthernetInterface class test_interface(TestCase): @@ -1346,6 +1346,27 @@ def test_tunnelencryption_interface(self): ' exit', ])) + def test_ethernet_interface_private_vlan_access(self): + testbed = Genie.testbed = Testbed() + dev1 = Device(testbed=testbed, name='PE1', os='nxos') + intf1 = EthernetInterface(name='Ethernet0/0/1', device=dev1) + # Defining attributes section + # make intf1 as L2 private-vlan host interface + intf1.switchport_enable = True + intf1.switchport_mode = L2_type.PRIVATE_VLAN_ACCESS.value + intf1.primary_vlan = '10' + intf1.secondary_vlan = '100' + cfg = intf1.build_config(apply=False) + self.assertMultiLineEqual( + str(cfg), + '\n'.join([ + 'interface Ethernet0/0/1', + ' switchport', + ' switchport mode private-vlan host', + ' switchport private-vlan host-association 10 100', + ' exit', + ])) + if __name__ == '__main__': unittest.main() diff --git a/pkgs/conf-pkg/src/genie/libs/conf/macsec/macsec.py b/pkgs/conf-pkg/src/genie/libs/conf/macsec/macsec.py index a7c0cebe0..fcd08d9e6 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/macsec/macsec.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/macsec/macsec.py @@ -147,6 +147,11 @@ def device_attr(self): type=(None, managedattribute.test_istype(bool)), doc='Enable/disable include-sci') + ppk_profile_name = managedattribute(name='ppk_profile_name', + default=None, + type=(None, managedattribute.test_istype(str)), + doc='Configure PPK crypto-qkd-profile') + #macsec interface level attributes key_chain = managedattribute(name='key_chain', default=None, diff --git a/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/macsec.py b/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/macsec.py index 73624d3b9..53cee2f6f 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/macsec.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/macsec.py @@ -139,6 +139,11 @@ def build_config(self, apply=True, attributes=None, unconfig=False, **kwargs): # window-size 10000 if attributes.value('window_size'): configurations.append_line(attributes.format('window-size {window_size}')) + + #macsec policy + # ppk crypto-qkd-profile QKD1 + if attributes.value('ppk_profile_name'): + configurations.append_line(attributes.format('ppk crypto-qkd-profile {ppk_profile_name}')) return str(configurations) diff --git a/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/test/test_macsec.py b/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/test/test_macsec.py index b7fd342db..7cf1c68d0 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/test/test_macsec.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/macsec/nxos/test/test_macsec.py @@ -29,6 +29,7 @@ def test_macsec_cfg(self): macsec.device_attr[dev1].macsec_policy_attr['MP1'].include_icv_indicator = True macsec.device_attr[dev1].macsec_policy_attr['MP1'].include_sci = False macsec.device_attr[dev1].macsec_policy_attr['MP1'].window_size = 100000 + macsec.device_attr[dev1].macsec_policy_attr['MP1'].ppk_profile_name = 'QKD1' cfgs = macsec.build_config(apply=False) self.assertCountEqual(cfgs.keys(), [dev1.name]) @@ -42,7 +43,8 @@ def test_macsec_cfg(self): ' sak-expiry-time 70', ' include-icv-indicator', ' no include-sci', - ' window-size 100000', + ' window-size 100000', + ' ppk crypto-qkd-profile QKD1', ' exit' ])) diff --git a/pkgs/conf-pkg/src/genie/libs/conf/vlan/nxos/vlan.py b/pkgs/conf-pkg/src/genie/libs/conf/vlan/nxos/vlan.py index ebf302be2..e2f9353ed 100644 --- a/pkgs/conf-pkg/src/genie/libs/conf/vlan/nxos/vlan.py +++ b/pkgs/conf-pkg/src/genie/libs/conf/vlan/nxos/vlan.py @@ -9,7 +9,6 @@ # Python from abc import ABC - # Genie package from genie.conf.base.attributes import AttributesHelper from genie.conf.base import Interface @@ -26,7 +25,6 @@ def build_config(self, apply=True, attributes=None, unconfig=False, assert not kwargs, kwargs attributes = AttributesHelper(self, attributes) configurations = CliConfigBuilder(unconfig=unconfig) - # enabled if attributes.value('enabled'): configurations.append_line(attributes.format( @@ -64,6 +62,19 @@ def build_config(self, apply=True, attributes=None, unconfig=False, else: configurations.append_line('no shutdown', unconfig_cmd='shutdown') + # private_vlan_attributes + if attributes.value('private_vlan_type'): + private_vlan_type = attributes.value('private_vlan_type') + configurations.append_line( + attributes.format('private-vlan {private_vlan_type}'.format(private_vlan_type=private_vlan_type))) + v = attributes.value('private_vlan_association_action') + if v is not None: + association_id = \ + attributes.value( + 'private_vlan_association_ids', force=True) + if association_id is not None: + configurations.append_line('private-vlan association {} {}'.format(v, association_id)) + # nxos: vlan 1000 / remote-span if attributes.value('remote_span'): configurations.append_line( @@ -323,6 +334,19 @@ def build_config(self, devices=None, apply=True, attributes=None, state_value = attributes.value('mode').value configurations.append_line( attributes.format('mode {mode.value}')) + # private_vlan_attributes + if attributes.value('private_vlan_type'): + private_vlan_type = attributes.value('private_vlan_type') + configurations.append_line( + attributes.format('private-vlan {private_vlan_type}'.format(private_vlan_type=private_vlan_type))) + v = attributes.value('private_vlan_association_action') + if v is not None: + association_id = \ + attributes.value( + 'private_vlan_association_ids', force=True) + if association_id is not None: + configurations.append_line('private-vlan association {} {}'.format(v, association_id)) + # vn_segment_id if attributes.value('vn_segment_id'): configurations.append_line( diff --git a/pkgs/filetransferutils-pkg/changelog/2024/february.rst b/pkgs/filetransferutils-pkg/changelog/2024/february.rst new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/filetransferutils-pkg/changelog/2024/january.rst b/pkgs/filetransferutils-pkg/changelog/2024/january.rst new file mode 100644 index 000000000..51f773b8c --- /dev/null +++ b/pkgs/filetransferutils-pkg/changelog/2024/january.rst @@ -0,0 +1,8 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* common + * Updated pyats configuration import + + diff --git a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/__init__.py b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/__init__.py index 459d3824e..f2afe0bae 100644 --- a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/__init__.py +++ b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/__init__.py @@ -9,7 +9,7 @@ ''' -__version__ = '23.11' +__version__ = '24.2' __author__ = 'Cisco Systems Inc.' __contact__ = ['pyats-support@cisco.com', 'pyats-support-ext@cisco.com'] __copyright__ = 'Copyright (c) 2018, Cisco Systems Inc.' diff --git a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/plugin.py b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/plugin.py index 5805652f3..2bc0eded9 100644 --- a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/plugin.py +++ b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/plugin.py @@ -1,7 +1,7 @@ import logging import os -from pyats import configuration as cfg +from pyats.configuration import configuration as cfg from pyats.datastructures import AttrDict from pyats.easypy.plugins.bases import BasePlugin from pyats.utils.dicts import recursive_update diff --git a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/server.py b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/server.py index e40569f73..1f75406e5 100644 --- a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/server.py +++ b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/fileserver/server.py @@ -7,7 +7,7 @@ import netaddr import psutil -from pyats import configuration as cfg +from pyats.configuration import configuration as cfg from pyats.datastructures import AttrDict from pyats.utils.dicts import recursive_update diff --git a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/plugins/iosxr/fileutils.py b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/plugins/iosxr/fileutils.py index 7aae7ea15..e068694fd 100644 --- a/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/plugins/iosxr/fileutils.py +++ b/pkgs/filetransferutils-pkg/src/genie/libs/filetransferutils/plugins/iosxr/fileutils.py @@ -42,7 +42,7 @@ def copyfile(self, Returns ------- - `None` + `str` : Output of copy command Raises ------ @@ -119,7 +119,7 @@ def copyfile(self, else: cmd = 'copy {f} {t}'.format(f=source, t=destination) - super().copyfile(source=source, + return super().copyfile(source=source, destination=destination, timeout_seconds=timeout_seconds, cmd=cmd, diff --git a/pkgs/health-pkg/changelog/2024/february.rst b/pkgs/health-pkg/changelog/2024/february.rst new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/health-pkg/changelog/2024/january.rst b/pkgs/health-pkg/changelog/2024/january.rst new file mode 100644 index 000000000..51f773b8c --- /dev/null +++ b/pkgs/health-pkg/changelog/2024/january.rst @@ -0,0 +1,8 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* common + * Updated pyats configuration import + + diff --git a/pkgs/health-pkg/src/genie/libs/health/__init__.py b/pkgs/health-pkg/src/genie/libs/health/__init__.py index 9c8fc2782..ab745bf00 100644 --- a/pkgs/health-pkg/src/genie/libs/health/__init__.py +++ b/pkgs/health-pkg/src/genie/libs/health/__init__.py @@ -8,7 +8,7 @@ ''' # metadata -__version__ = '23.11' +__version__ = '24.2' __author__ = 'Cisco Systems Inc.' __contact__ = ['asg-genie-support@cisco.com', 'pyats-support-ext@cisco.com'] __copyright__ = 'Copyright (c) 2020, Cisco Systems Inc.' diff --git a/pkgs/health-pkg/src/genie/libs/health/plugin.py b/pkgs/health-pkg/src/genie/libs/health/plugin.py index 17547f2d9..d394d1e06 100644 --- a/pkgs/health-pkg/src/genie/libs/health/plugin.py +++ b/pkgs/health-pkg/src/genie/libs/health/plugin.py @@ -15,7 +15,7 @@ from pyats.easypy import runtime from pyats.easypy.plugins.bases import BasePlugin from pyats.aetest.processors.decorator import ProcessorDecorator -from pyats import configuration as cfg +from pyats.configuration import configuration as cfg from pyats.utils import parser as argparse from pyats.utils.yaml.dumper import OrderedSafeDumper diff --git a/pkgs/ops-pkg/changelog/2024/february.rst b/pkgs/ops-pkg/changelog/2024/february.rst new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/ops-pkg/changelog/2024/january.rst b/pkgs/ops-pkg/changelog/2024/january.rst new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/ops-pkg/src/genie/libs/ops/__init__.py b/pkgs/ops-pkg/src/genie/libs/ops/__init__.py index a547e353e..21fcd090d 100644 --- a/pkgs/ops-pkg/src/genie/libs/ops/__init__.py +++ b/pkgs/ops-pkg/src/genie/libs/ops/__init__.py @@ -7,7 +7,7 @@ ''' # metadata -__version__ = '23.11' +__version__ = '24.2' __author__ = 'Cisco Systems Inc.' __contact__ = ['pyats-support@cisco.com', 'pyats-support-ext@cisco.com'] __copyright__ = 'Copyright (c) 2018, Cisco Systems Inc.' diff --git a/pkgs/ops-pkg/src/genie/libs/ops/platform/nxos/tests/mando4_platform_output.py b/pkgs/ops-pkg/src/genie/libs/ops/platform/nxos/tests/mando4_platform_output.py old mode 100644 new mode 100755 diff --git a/pkgs/robot-pkg/changelog/2024/february.rst b/pkgs/robot-pkg/changelog/2024/february.rst new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/robot-pkg/changelog/2024/january.rst b/pkgs/robot-pkg/changelog/2024/january.rst new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/robot-pkg/src/genie/libs/robot/__init__.py b/pkgs/robot-pkg/src/genie/libs/robot/__init__.py index 607daa599..1665933ab 100644 --- a/pkgs/robot-pkg/src/genie/libs/robot/__init__.py +++ b/pkgs/robot-pkg/src/genie/libs/robot/__init__.py @@ -8,7 +8,7 @@ ''' # metadata -__version__ = '23.11' +__version__ = '24.2' __author__ = 'Cisco Systems Inc.' __contact__ = ['pyats-support@cisco.com', 'pyats-support-ext@cisco.com'] __copyright__ = 'Copyright (c) 2018, Cisco Systems Inc.' diff --git a/pkgs/sdk-pkg/changelog/2024/february.rst b/pkgs/sdk-pkg/changelog/2024/february.rst new file mode 100644 index 000000000..e9edf82ea --- /dev/null +++ b/pkgs/sdk-pkg/changelog/2024/february.rst @@ -0,0 +1,77 @@ +-------------------------------------------------------------------------------- + New +-------------------------------------------------------------------------------- + +* iosxe + * Added unconfigure_policy_map_with_pps + * New API to unconfigure policy-map pps + * Added api test_configure_cdp_1 + * added api for validate show interface {interface} + * Added configure_ip_http_client_secure_trustpoint + * API to configure_ip_http_client_secure_trustpoint + * Added hw_module_filesystem_security_lock + * API to enable/disable filesystem's security-lock + * Added API verify_interface_capabilities_multiple_media_types + * Added API to verify the interface media type + * Added API verify_interfaces_transceiver_supported + * Added API to verify the transceivers supported in the device + * Updated `configure_management_gnmi` API to support secure server + * Modified `generate_rsa_ssl_key` API to support legacy 3des + * Modified `get_file_contents` API, added removal of carriage return option + * Modified `configure_pki_import`, added device key and root CA options + * Added new api `generate_pkcs12` to generate pkcs12 file. + * Added API unconfigure_ip_igmp_querier_query_interval + * Added API for unconfigure ip igmp querier query interval + * Added API unconfigure_ip_igmp_querier_max_response_time + * Added API for unconfigure ip igmp querier max response time + * Added API unconfigure_ip_igmp_querier_tcn_query_count + * Added API for unconfigure ip igmp querier tcn query count + * Added API unconfigure_ip_igmp_querier_tcn_query_interval + * Added API for unconfigure ip igmp querier tcn query interval + * Added API unconfigure_ip_igmp_querier_timer_expiry + * Added API for unconfigure ip igmp querier timer expiry + +* api utils + * Add + * check_and_wait decorator + +* makefile + * Added pyasyncore dependency to fix pysnmp script + + +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* linux + * Add api get_valid_ipv4_address + * added api to validate and return ipv4 address + * Add api get_ip_route_for_ipv4 + * added api to get the routing ip form routing table + * Modified get_snmp_snmpwalk + * Added timeout parameter to increase timeout of execute operation + +* iosxe/rommon + * configure + * Updated `configure_rommon_tftp` API to set TFTP_FILE as the rommon variable. + * utils + * Updated `device_rommon_boot` API with a an option to boot using TFTP_FILE. + +* iosxe + * Modified configure_sdm_prefer_custom_template + * added parameters custom_template, entried and priority + * Modified get_snmp_snmpwalk + * Added timeout parameter to increase timeout of execute operation + * `get_running_config_dict` API + * Added `output` parameter to pass the output of `show running-config` command. + + +-------------------------------------------------------------------------------- + Modify +-------------------------------------------------------------------------------- + +* iosxe + * Modified configure_virtual_template + * modified api to configure ipv6_pool_name + + diff --git a/pkgs/sdk-pkg/changelog/2024/january.rst b/pkgs/sdk-pkg/changelog/2024/january.rst new file mode 100644 index 000000000..7480f0df1 --- /dev/null +++ b/pkgs/sdk-pkg/changelog/2024/january.rst @@ -0,0 +1,102 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- + +* iosxe + * Removed remove_routing_ip_route + * Modified configure_pppoe_enable_interface + * modified api to configure ppp-max-payload + * Modified unconfigure_pppoe_enable_interface + * modified api to unconfigure ppp-max-payload + * Modified get_firmware_version to handle stack switches + * Modified unconfigure_app_hosting_appid + * Added 'appid' argument + * Modified configure_fnf_flow_record + * added new fields + +* iosxr + * Modified FileUtils + +* sdk-pkg + * iosxe + * Fix the copy_file_with_scp api mock data + + +-------------------------------------------------------------------------------- + New +-------------------------------------------------------------------------------- + +* iosxe + * Added configure_mdns_remote_purge_timer + * API to configure enable configure mdns remote purge timer + * Added unconfigure_mdns_remote_purge_timer + * API to unconfigure mdns remote purge timer + * Added unconfigure_mdns_global_service_buffer + * API to unconfigure mdns global service buffer + * Added clear_mdns_cache_remote + * API to clear mdns cache remote + * Added configure_mdns_remote_cache_enable + * API to configure mdns remote cache enable + * Added unconfigure_mdns_remote_cache_enable + * API to unconfigure mdns remote cache enable + * Added configure_mdns_remote_cache_max_limit + * API to configure mdns remote cache max limit + * Added unconfigure_mdns_remote_cache_max_limit + * API to unconfigure mdns remote cache max limit + * Added configure_mdns_global_service_buffer + * API to configure mdns global service buffer + * Added configure_ip_on_atm_interface + * added api to configure_ip_on_atm_interface + * Added unconfigure_ip_on_atm_interface + * added api to unconfigure_ip_on_atm_interface + * Added get_module api + * Added hw_module_beacon_rp_toggle + * API to turn beacon on/off for RP and R1 + * Added hw_module_beacon_rp_status + * API to fetch beacon status for RP and R1 + * Added hw_module_beacon_slot_status + * API to fetch beacon status for slot + * Added hw_module_beacon_rp_active_standby_status + * API to fetch status of the beacon for active/standby RP + * Added clear_lacp_counters + * added api to clear_lacp_counters + * Added clear_active_punt_ios_cause + * added api to clear_active_punt_ios_cause + * Modified configure_interface_switchport_access_vlan + * Modified the configure_interface_switchport_access_vlan API interface to swichport + * Added configure_hw_module_switch_number_ecomode_led + * hw-module switch number ecomode led + * Added unconfigure_hw_module_switch_number_ecomode_led + * no hw-module switch number ecomode led + * Modified copy_file_with_scp + * Modified copy_file_with_sftp + +* cheetah + * Added execute_archive_download + * Added new API execute_archive_download + + +-------------------------------------------------------------------------------- + Modify +-------------------------------------------------------------------------------- + +* iosxe + * Modified configure_virtual_template + * modified api to configure ipv6_pool_name + * Modified configure_bba_group + * modified api to configure tag ppp-max-payload + * Modified configure_device_classifier_command + * added optional timeout value + * Modified configure_device_classifier + * added optional timeout value + + +-------------------------------------------------------------------------------- + Add +-------------------------------------------------------------------------------- + +* iosxe + * Added API clear_ip_dhcp_snooping_statistics + * API added to clear ip dhcp snooping statistics + + diff --git a/pkgs/sdk-pkg/changelog/changelog_add_iosxe_configure_terminal_settings_20240111051330.rst b/pkgs/sdk-pkg/changelog/changelog_add_iosxe_configure_terminal_settings_20240111051330.rst new file mode 100644 index 000000000..3b349f86c --- /dev/null +++ b/pkgs/sdk-pkg/changelog/changelog_add_iosxe_configure_terminal_settings_20240111051330.rst @@ -0,0 +1,6 @@ +-------------------------------------------------------------------------------- + New +-------------------------------------------------------------------------------- +* IOSXE + * Added configure_terminal_settings + * New API to configure terminal length/width \ No newline at end of file diff --git a/pkgs/sdk-pkg/changelog/changelog_fix_cheetah_ap_execute_archive_download_20240125121356.rst b/pkgs/sdk-pkg/changelog/changelog_fix_cheetah_ap_execute_archive_download_20240125121356.rst new file mode 100644 index 000000000..13100fbb7 --- /dev/null +++ b/pkgs/sdk-pkg/changelog/changelog_fix_cheetah_ap_execute_archive_download_20240125121356.rst @@ -0,0 +1,6 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- +* CHEETAH + * Modified execute_archive_download: + * Changed if-else logic to make api generic \ No newline at end of file diff --git a/pkgs/sdk-pkg/changelog/changelog_fix_iosxe_get_boot_variables_20241535.rst b/pkgs/sdk-pkg/changelog/changelog_fix_iosxe_get_boot_variables_20241535.rst new file mode 100644 index 000000000..d6b06dd13 --- /dev/null +++ b/pkgs/sdk-pkg/changelog/changelog_fix_iosxe_get_boot_variables_20241535.rst @@ -0,0 +1,5 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- +* IOSXE + * Updated get_boot_variables diff --git a/pkgs/sdk-pkg/changelog/changelog_fix_iosxe_sisf_get_ip_theft_syslogs_20240205194641.rst b/pkgs/sdk-pkg/changelog/changelog_fix_iosxe_sisf_get_ip_theft_syslogs_20240205194641.rst new file mode 100644 index 000000000..55a61539f --- /dev/null +++ b/pkgs/sdk-pkg/changelog/changelog_fix_iosxe_sisf_get_ip_theft_syslogs_20240205194641.rst @@ -0,0 +1,5 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- +* IOSXE + * Updated regex to consider interface shorthand without the "/" character diff --git a/pkgs/sdk-pkg/changelog/changelog_remove_markupsafe_jinja_version_pinning_20231201121830.rst b/pkgs/sdk-pkg/changelog/changelog_remove_markupsafe_jinja_version_pinning_20231201121830.rst new file mode 100644 index 000000000..f255a27fd --- /dev/null +++ b/pkgs/sdk-pkg/changelog/changelog_remove_markupsafe_jinja_version_pinning_20231201121830.rst @@ -0,0 +1,5 @@ +-------------------------------------------------------------------------------- + Fix +-------------------------------------------------------------------------------- +* Makefile + * Remove Markupsafe(since we removed aiohttp-swagger we no longer require Markupsafe) and jinja version pinning. \ No newline at end of file diff --git a/pkgs/sdk-pkg/sdk_generator/output/github_apis.json b/pkgs/sdk-pkg/sdk_generator/output/github_apis.json index f2893e77e..a27545bcc 100644 --- a/pkgs/sdk-pkg/sdk_generator/output/github_apis.json +++ b/pkgs/sdk-pkg/sdk_generator/output/github_apis.json @@ -32,7 +32,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "analyze_rate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L590" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L591" } }, "analyze_udp_in_mpls_packets": { @@ -77,7 +77,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "arithmetic_operations", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3943" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3944" } }, "assign_default_ipv4_sgacl": { @@ -104,7 +104,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "attach_device_tracking_policy_to_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2833" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2834" } }, "attach_dhcpv6_guard_policy_to_interface": { @@ -113,7 +113,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "attach_dhcpv6_guard_policy_to_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2444" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2445" } }, "attach_dhcpv6_guard_policy_to_vlan": { @@ -122,7 +122,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "attach_dhcpv6_guard_policy_to_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2765" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2766" } }, "attach_ipv6_dhcp_guard_policy": { @@ -149,7 +149,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "attach_ipv6_raguard_policy_to_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2288" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2289" } }, "attach_ipv6_raguard_policy_to_vlan": { @@ -158,7 +158,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "attach_ipv6_raguard_policy_to_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2582" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2583" } }, "authentication_convert_to_new_style": { @@ -176,7 +176,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "bits_to_netmask", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L836" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L837" } }, "cdets_lookup": { @@ -228,7 +228,7 @@ "module_name": "pki.configure", "package": "genie.libs.sdk.apis", "uid": "change_pki_server_state", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py#L877" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py#L883" } }, "change_power_cycler_state": { @@ -240,6 +240,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/execute.py#L158" } }, + "check_and_wait": { + "com": { + "doc": "A decorator to check the return value of a function\n and wait until it matches the expected value or timeout.\n Args:\n expect(`bool`): True or False\n max_time(`int`): Maximum time to keep checking. seconds\n poll_time(`int`): How often to check. seconds\n ", + "module_name": "utils", + "package": "genie.libs.sdk.apis", + "uid": "check_and_wait", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4434" + } + }, "check_if_device_in_testbed_yaml": { "nxos": { "doc": " Check if the given device name is part of the devices yaml file\n\n Args:\n device_name ('str'): Name of the device to be found as a string\n yaml_file ('str'): Name(path) of the yaml file where the device\n is to be found as a string\n Return value:\n Boolean. True, if found. False, if error/not found\n\n ", @@ -321,6 +330,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dot1x/configure.py#L1419" } }, + "clear_active_punt_ios_cause": { + "iosxe": { + "doc": " show platform software fed switch active punt ios-cause clear\n Args:\n device ('obj'): Device object\n state (str, optional): Switch state active or standby\n Return:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "platform.clear", + "package": "genie.libs.sdk.apis", + "uid": "clear_active_punt_ios_cause", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/clear.py#L102" + } + }, "clear_arp_cache": { "iosxe": { "doc": " Clears device cache\n\n Args:\n device (`obj`): Device object\n ip_address (`str`): ip address of arp entry\n counters (`str`): counter type of arp entry\n interface (`str`): interface to clear arp entry\n vrf (`str`): vrf to clear arp entry\n Returns:\n None\n Raises:\n SubCommandFailure\n ", @@ -678,7 +696,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "clear_interface_interfaces", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1638" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1639" } }, "clear_interface_range": { @@ -789,6 +807,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/clear.py#L33" } }, + "clear_ip_dhcp_snooping_statistics": { + "iosxe": { + "doc": "execute 'clear ip dhcp snooping statistics' on device\n Args:\n device('obj'): device object\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "dhcp.execute", + "package": "genie.libs.sdk.apis", + "uid": "clear_ip_dhcp_snooping_statistics", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dhcp/execute.py#L62" + } + }, "clear_ip_eigrp_neighbor": { "iosxe": { "doc": "\n clear ip eigrp neighbor\n Args:\n device ('obj'): Device object\n Returns:\n None\n Raises:\n SubcommandFailure: Failed executing command\n ", @@ -1014,6 +1041,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/isis/configure.py#L644" } }, + "clear_lacp_counters": { + "iosxe": { + "doc": " clear lacp counters\n\n Args:\n device ('obj'): Device object\n channel_group ('int', optional): Channel group number. Default is None\n\n Return:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "lacp.configure", + "package": "genie.libs.sdk.apis", + "uid": "clear_lacp_counters", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/lacp/configure.py#L193" + } + }, "clear_lldp_counters": { "iosxe": { "doc": " Clear LLDP counters on target device globally on the device\n Args:\n device ('obj'): Device object\n Returns:\n None\n ", @@ -1097,7 +1133,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "clear_macro_auto_confgis", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1979" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1993" } }, "clear_macsec_counters": { @@ -1118,6 +1154,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L997" } }, + "clear_mdns_cache_remote": { + "iosxe": { + "doc": " Clears mdns remote cache on device\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "clear_mdns_cache_remote", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1793" + } + }, "clear_mdns_controller_statistics": { "iosxe": { "doc": " Clears mdns controller statistics on SDG\n Args:\n device (`obj`): Device object\n Return:\n None\n Raise:\n SubCommandFailure: Failed clearing controller statistics\n ", @@ -1329,7 +1374,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "compare_config_dicts", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L242" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L243" } }, "compare_metric_of_route": { @@ -1347,7 +1392,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "compared_with_running_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1544" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1545" } }, "concurrent_ssh_sessions": { @@ -1365,7 +1410,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "confgiure_port_channel_min_link", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5844" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5857" } }, "config_access_session_accnt_attr_filter_spec_include_list": { @@ -1401,7 +1446,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "config_cns_agent_passwd", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3809" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3823" } }, "config_device_tracking_policy": { @@ -1419,7 +1464,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "config_edge_trunk_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2706" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2707" } }, "config_enable_ip_routing": { @@ -1617,7 +1662,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "config_interface_prpchannel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9488" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9501" } }, "config_interface_ripng": { @@ -1653,7 +1698,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "config_ip_domain_lookup", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8419" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8432" } }, "config_ip_multicast_routing_vrf_distributed": { @@ -1752,7 +1797,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "config_link_local_ip_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7327" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7340" } }, "config_load_interval_on_interface": { @@ -1761,7 +1806,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "config_load_interval_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8074" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8087" } }, "config_mac_aging_time": { @@ -1948,7 +1993,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "config_port_security_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3916" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3917" } }, "config_portchannel_range": { @@ -1957,7 +2002,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "config_portchannel_range", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3763" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3764" } }, "config_pseudowire_class": { @@ -2344,7 +2389,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_absolute_time_range", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5019" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5076" } }, "configure_access_map_match_ip_address_action_forward": { @@ -2434,7 +2479,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_access_session_port_control", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5292" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5305" } }, "configure_access_session_single_policy_interface": { @@ -2506,7 +2551,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_action_string", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2586" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2600" } }, "configure_action_syslog_msg": { @@ -2515,7 +2560,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_action_syslog_msg", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2560" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2574" } }, "configure_active_timer_under_et_analytics": { @@ -2605,7 +2650,7 @@ "module_name": "apphosting.configure", "package": "genie.libs.sdk.apis", "uid": "configure_app_management_networking", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py#L420" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py#L421" } }, "configure_archive_default": { @@ -2614,7 +2659,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_archive_default", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2096" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2110" } }, "configure_archive_logging": { @@ -2623,7 +2668,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_archive_logging", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L461" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L512" } }, "configure_archive_maximum": { @@ -2632,7 +2677,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_archive_maximum", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2186" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2200" } }, "configure_archive_path": { @@ -2641,7 +2686,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_archive_path", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2136" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2150" } }, "configure_archive_rollback": { @@ -2650,7 +2695,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_archive_rollback", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2229" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2243" } }, "configure_archive_time_period": { @@ -2659,7 +2704,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_archive_time_period", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2282" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2296" } }, "configure_archive_write_memory": { @@ -2668,7 +2713,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_archive_write_memory", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2327" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2341" } }, "configure_arp_access_list_permit_ip_host": { @@ -2794,7 +2839,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_authentication_parameters_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2868" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2869" } }, "configure_authentication_periodic": { @@ -2895,12 +2940,12 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_banner", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4353" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4368" } }, "configure_bba_group": { "iosxe": { - "doc": " bba-group\n Args:\n device (`obj`): Device object\n name (`str`): bba-group name\n vt_number (`str`): virtual-template interface number\n service_profile_name('str', optional): service profile name\n Returns:\n None\n Raises:\n SubCommandFailure:Could not config bba-group on device\n ", + "doc": " bba-group\n Args:\n device (`obj`): Device object\n name (`str`): bba-group name\n vt_number (`str`): virtual-template interface number\n service_profile_name('str', optional): service profile name\n tag ('str', optional): ppp-max-payload\n Returns:\n None\n Raises:\n SubCommandFailure:Could not config bba-group on device\n ", "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_bba_group", @@ -2913,7 +2958,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_bba_group_session_auto_cleanup", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4541" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4571" } }, "configure_bfd_neighbor_on_interface": { @@ -3291,7 +3336,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_boot_manual_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4137" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4152" } }, "configure_boot_system_image_file": { @@ -3300,7 +3345,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_boot_system_image_file", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4486" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4501" } }, "configure_boot_system_switch_all_flash": { @@ -3309,7 +3354,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_boot_system_switch_all_flash", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1195" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1247" } }, "configure_boot_system_switch_switchnumber": { @@ -3318,7 +3363,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_boot_system_switch_switchnumber", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3545" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3559" } }, "configure_breakout_cli": { @@ -3338,7 +3383,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_bridge_domain", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4600" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4630" } }, "configure_broadband_aaa": { @@ -3347,7 +3392,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_broadband_aaa", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L271" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L275" } }, "configure_bulkstat_profile": { @@ -3356,7 +3401,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_bulkstat_profile", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L895" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L947" } }, "configure_by_jinja2": { @@ -3374,7 +3419,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_call_admission", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L217" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L221" } }, "configure_call_home": { @@ -3608,7 +3653,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_call_home_reporting", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3107" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3121" } }, "configure_call_home_site_id": { @@ -3773,7 +3818,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_clear_logging_onboard_slot_environment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5296" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5353" } }, "configure_clear_logging_onboard_slot_temperature": { @@ -3782,7 +3827,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_clear_logging_onboard_slot_temperature", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5329" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5386" } }, "configure_clear_logging_onboard_slot_voltage": { @@ -3791,7 +3836,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_clear_logging_onboard_slot_voltage", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5263" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5320" } }, "configure_clear_logging_onboard_switch_environment": { @@ -3800,7 +3845,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_clear_logging_onboard_switch_environment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1106" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1158" } }, "configure_clear_logging_onboard_switch_temperature": { @@ -3809,7 +3854,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_clear_logging_onboard_switch_temperature", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1047" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1099" } }, "configure_clear_logging_onboard_switch_voltage": { @@ -3818,7 +3863,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_clear_logging_onboard_switch_voltage", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1076" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1128" } }, "configure_client_details": { @@ -3845,7 +3890,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_clock_timezone", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1518" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1570" } }, "configure_coa": { @@ -3863,7 +3908,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_commands_to_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1709" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1761" } }, "configure_common_criteria_policy": { @@ -3890,7 +3935,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_console_default_privilege_level", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8710" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8723" } }, "configure_control_plane_control_plane_policy": { @@ -3908,7 +3953,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_control_policies", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3982" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3983" } }, "configure_controller_details": { @@ -3953,7 +3998,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_cos", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4328" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4343" } }, "configure_crypto_ikev2_NAT_keepalive": { @@ -4052,7 +4097,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_crypto_map_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5117" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5130" } }, "configure_crypto_pki_server": { @@ -4187,7 +4232,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_default_gateway", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L633" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L602" } }, "configure_default_mac_global_address_table_notification_change": { @@ -4219,11 +4264,11 @@ }, "configure_default_spanning_tree": { "iosxe": { - "doc": "Configure default spanning-tree\n Args:\n device ('obj'): Device object\n mode_type('str'): backbonefast Enable BackboneFast Feature\n bridge STP Bridge Assurance parameters\n cca enable/disable CCA routine\n dispute Enable STP dispute mechanism\n etherchannel Spanning tree etherchannel specific configuration\n extend Spanning Tree 802.1t extensions\n logging Enable Spanning tree logging\n loopguard Spanning tree loopguard options\n mode Spanning tree operating mode\n mst Multiple spanning tree configuration\n pathcost Spanning tree pathcost options\n portfast Spanning tree portfast options\n sso Stateful Switchover\n transmit STP transmit parameters\n uplinkfast Enable UplinkFast Feature\n vlan VLAN Switch Spanning Tree\n Return:\n None\n Raise:\n SubCommandFailure \n ", - "module_name": "dot1x.configure", + "doc": " Configure spanning-tree mode mst\n Args:\n device ('obj'): Device object]\n spanning_tree ('str'): spanning tree \n mst ('str'): instance range, example: 0-3,5,7-9\n portfast ('str'): enable portfast\n range ('str'): vlan range, example: 1,3-5,7,9-11\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "spanning_tree.configure", "package": "genie.libs.sdk.apis", "uid": "configure_default_spanning_tree", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dot1x/configure.py#L2088" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/spanning_tree/configure.py#L640" } }, "configure_default_spanning_tree_mode": { @@ -4241,7 +4286,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_default_stack_power_switch_power_priority", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3371" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3385" } }, "configure_default_switchport_trunk_vlan": { @@ -4277,25 +4322,25 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "configure_device", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L763" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L764" } }, "configure_device_classifier": { "iosxe": { - "doc": " Configure device classifier on this device\n\n Args:\n device ('obj'): device to use\n dc_option ('str'): device classifier option\n ex:)\n condition Define device classifier condition\n device-type Define device type\n dc_option_name ('str'): Name of device classifier type\n ex:)\n WORD Condition name\n WORD Device type name\n\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "doc": " Configure device classifier on this device\n\n Args:\n device ('obj'): device to use\n dc_option ('str'): device classifier option\n ex:)\n condition Define device classifier condition\n device-type Define device type\n dc_option_name ('str'): Name of device classifier type\n timeout('int', optional): timeout in seconds. default is 30\n ex:)\n WORD Condition name\n WORD Device type name\n\n Returns:\n None\n Raises:\n SubCommandFailure\n ", "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_device_classifier", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L758" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L809" } }, "configure_device_classifier_command": { "iosxe": { - "doc": " configure device classifier on this device\n\n Args:\n device ('obj'): device to use\n dc_option ('str'): device classifier option\n ex:)\n condition Define device classifier condition\n device-type Define device type\n dc_option_name ('str'): Name of device classifier type\n ex:)\n WORD Condition name\n WORD Device type name\n dc_command ('str'): Define device rule commands\n ex:)\n Device classifier profile commands\n condition Give condition name\n default Set a command to its defaults\n exit Exit from device-classifier dev-type configuration mode\n no Negate a command or set its defaults\n dc_command_name('str'): command names\n ex:)\n cdp tlv-type 1 value String 9300-24UX-2\n dc_profile_commands('str'): Given commands\n ex:)\n Device classifier profile commands\n condition Give condition name\n default Set a command to its defaults\n exit Exit from device-classifier dev-type configuration mode\n no Negate a command or set its defaults\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "doc": " configure device classifier on this device\n\n Args:\n device ('obj'): device to use\n dc_option ('str'): device classifier option\n ex:)\n condition Define device classifier condition\n device-type Define device type\n dc_option_name ('str'): Name of device classifier type\n ex:)\n WORD Condition name\n WORD Device type name\n dc_command ('str'): Define device rule commands\n ex:)\n Device classifier profile commands\n condition Give condition name\n default Set a command to its defaults\n exit Exit from device-classifier dev-type configuration mode\n no Negate a command or set its defaults\n dc_command_name('str'): command names\n ex:)\n cdp tlv-type 1 value String 9300-24UX-2\n dc_profile_commands('str'): Given commands\n ex:)\n Device classifier profile commands\n condition Give condition name\n default Set a command to its defaults\n exit Exit from device-classifier dev-type configuration mode\n no Negate a command or set its defaults\n timeout('int', optional): timeout in seconds. default is 30\n Returns:\n None\n Raises:\n SubCommandFailure\n ", "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_device_classifier_command", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3965" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3979" } }, "configure_device_policy_tracking": { @@ -4502,7 +4547,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_diagnostic_bootup_level_minimal", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4311" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4326" } }, "configure_diagnostic_monitor_switch": { @@ -4511,7 +4556,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_diagnostic_monitor_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3189" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3203" } }, "configure_diagnostic_monitor_syslog": { @@ -4520,7 +4565,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_diagnostic_monitor_syslog", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3828" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3842" } }, "configure_diagnostic_schedule_switch": { @@ -4529,7 +4574,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_diagnostic_schedule_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3241" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3255" } }, "configure_diagonistics_monitor_switch": { @@ -4538,7 +4583,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_diagonistics_monitor_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L339" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L343" } }, "configure_dialer_interface": { @@ -4547,7 +4592,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_dialer_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8924" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8937" } }, "configure_disable_aes_encryption": { @@ -4655,7 +4700,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_downlink_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4540" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4545" } }, "configure_dscp_global": { @@ -4754,7 +4799,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_eapol_dest_address_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3326" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3327" } }, "configure_eapol_eth_type_interface": { @@ -4763,7 +4808,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_eapol_eth_type_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3386" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3387" } }, "configure_egress_interface": { @@ -4772,7 +4817,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_egress_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4620" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4625" } }, "configure_eigrp_named_networks": { @@ -4880,7 +4925,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_enable_http_server", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1466" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1518" } }, "configure_enable_nat_scale": { @@ -4907,7 +4952,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_enable_secret_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3091" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3105" } }, "configure_encapsulation_mpls_ldp": { @@ -4952,7 +4997,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_eui_64_over_ipv6_enabled_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6748" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6761" } }, "configure_event_manager": { @@ -4961,7 +5006,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_event_manager", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5478" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5535" } }, "configure_event_manager_applet": { @@ -4970,7 +5015,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_event_manager_applet", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2938" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2952" } }, "configure_event_manager_applet_event_none": { @@ -4979,7 +5024,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_event_manager_applet_event_none", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2535" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2549" } }, "configure_evpn_default_gateway_advertise_global": { @@ -5272,7 +5317,7 @@ }, "configure_fnf_flow_record": { "iosxe": { - "doc": " Config Flow Record on Device\n Args:\n device (`obj`): Device object\n record_name (`str`): Flow record name\n datalink ('bool') : Configure datalink fields\n datalink_type_1 ('str', optional): First Datalink Type to be configured\n datalink_subtype_1 ('str', optional): First datalink subtype to be configured\n match_int_field ('str', optional): Interface field to be configured\n match_ipv4_field ('str', optional): First IPv4 field to be configured\n collect_counter_bytes ('bool'): Enable counter field bytes\n collect_counter_packets ('bool'): Enable counter field packets\n match_transport_field ('str', optional): First transport field to be configured\n address_mode('str', optional): Address mode to be configured\n tcp_field('bool'): Configure collect transport tcp flags\n collect_event('bool'): Configure collect policy firewall event\n Return:\n None\n\n Raise:\n SubCommandFailure: Failed configuring Flow Record on Device\n ", + "doc": " Config Flow Record on Device\n Args:\n device (`obj`): Device object\n record_name (`str`): Flow record name\n datalink ('bool') : Configure datalink fields\n datalink_type_1 ('str', optional): First Datalink Type to be configured\n datalink_subtype_1 ('str', optional): First datalink subtype to be configured\n match_int_field ('str', optional): Interface field to be configured\n match_ipv4_field ('str', optional): First IPv4 field to be configured\n collect_counter_bytes ('bool'): Enable counter field bytes\n collect_counter_packets ('bool'): Enable counter field packets\n match_transport_field ('str', optional): First transport field to be configured\n address_mode('str', optional): Address mode to be configured\n tcp_field('bool'): Configure collect transport tcp flags\n collect_event('bool'): Configure collect policy firewall event\n application_name('bool'): Configure application name\n connection_type('str', optional): connection type to be configured\n connection_address_type('str', optional): connection address type to be configured\n observation_point('bool'): Configure observation point\n collect_timestamp('str', optional): timestamp to be configured\n flow_direction('bool'): Configure flow direction\n initiator('bool'): Configure initiator\n new_connections('bool'): Configure new connections\n connection_counter('str', optional): connection bytes to be configured\n Return:\n None\n\n Raise:\n SubCommandFailure: Failed configuring Flow Record on Device\n ", "module_name": "flow.configure", "package": "genie.libs.sdk.apis", "uid": "configure_fnf_flow_record", @@ -5357,7 +5402,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_glbp_details_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9314" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9327" } }, "configure_global_dual_active_recovery_reload_disable": { @@ -5375,7 +5420,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_global_interface_template_sticky", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9009" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9022" } }, "configure_global_stackwise_virtual": { @@ -5402,7 +5447,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_graceful_reload", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4450" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4465" } }, "configure_graceful_reload_interval": { @@ -5411,7 +5456,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_graceful_reload_interval", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4291" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4306" } }, "configure_host_ip_to_sgt_mapping": { @@ -5438,7 +5483,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hsrp_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5012" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5025" } }, "configure_hsrp_version_on_interface": { @@ -5447,7 +5492,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hsrp_version_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7126" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7139" } }, "configure_hw_module_breakout": { @@ -5465,7 +5510,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_module_logging_onboard", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5089" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5146" } }, "configure_hw_module_slot_logging_onboard_environment": { @@ -5474,7 +5519,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_module_slot_logging_onboard_environment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5171" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5228" } }, "configure_hw_module_slot_logging_onboard_temperature": { @@ -5483,7 +5528,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_module_slot_logging_onboard_temperature", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5217" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5274" } }, "configure_hw_module_slot_logging_onboard_voltage": { @@ -5492,7 +5537,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_module_slot_logging_onboard_voltage", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5125" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5182" } }, "configure_hw_module_slot_shutdown": { @@ -5504,6 +5549,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/hw_module/configure.py#L36" } }, + "configure_hw_module_switch_number_ecomode_led": { + "iosxe": { + "doc": " configure_hw_module_switch_number_ecomode_led\n Args:\n device ('obj'): device to use\n switch_number ('str'): switch number\n Returns:\n None\n Raises:\n SubCommandFailure exception\n ", + "module_name": "platform.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_hw_module_switch_number_ecomode_led", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5560" + } + }, "configure_hw_module_switch_number_usbflash": { "iosxe": { "doc": " configure_hw_module_switch_num_usbflash\n Args:\n device ('obj'): device to use\n switch_number ('str'): switch number\n password ('str'): password(atleast 8 character long)\n Returns:\n None\n Raises:\n SubCommandFailure exception\n ", @@ -5519,7 +5573,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_switch_logging_onboard", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1383" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1435" } }, "configure_hw_switch_switch_logging_onboard_environment": { @@ -5528,7 +5582,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_switch_switch_logging_onboard_environment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L971" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1023" } }, "configure_hw_switch_switch_logging_onboard_temperature": { @@ -5537,7 +5591,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_switch_switch_logging_onboard_temperature", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1009" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1061" } }, "configure_hw_switch_switch_logging_onboard_voltage": { @@ -5546,7 +5600,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_hw_switch_switch_logging_onboard_voltage", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L932" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L984" } }, "configure_icmp_ip_reachables": { @@ -5681,7 +5735,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_VirtualPortGroup", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1606" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1658" } }, "configure_interface_auth_vlan": { @@ -5690,7 +5744,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_auth_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6604" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6617" } }, "configure_interface_auth_vlan_no_resp": { @@ -5699,7 +5753,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_auth_vlan_no_resp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6683" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6696" } }, "configure_interface_authentication_violation": { @@ -5708,7 +5762,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_authentication_violation", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8382" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8395" } }, "configure_interface_bandwidth": { @@ -5717,7 +5771,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_bandwidth", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8297" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8310" } }, "configure_interface_channel_group_auto_lacp": { @@ -5726,7 +5780,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_channel_group_auto_lacp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5889" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5902" } }, "configure_interface_default_snmp": { @@ -5744,7 +5798,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_default_snmp_trap_mac_notification_change", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7603" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7616" } }, "configure_interface_description": { @@ -5753,7 +5807,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_description", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1733" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1734" } }, "configure_interface_directed_broadcast": { @@ -5762,7 +5816,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_directed_broadcast", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1263" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1264" } }, "configure_interface_dot1x_eap_profile": { @@ -5771,7 +5825,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_dot1x_eap_profile", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6501" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6514" } }, "configure_interface_dot1x_max_reauth_req": { @@ -5780,7 +5834,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_dot1x_max_reauth_req", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6413" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6426" } }, "configure_interface_dot1x_max_req": { @@ -5789,7 +5843,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_dot1x_max_req", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6345" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6358" } }, "configure_interface_dot1x_timeout_txp": { @@ -5798,7 +5852,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_dot1x_timeout_txp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6278" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6291" } }, "configure_interface_duplex": { @@ -5807,7 +5861,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_duplex", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5490" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5503" } }, "configure_interface_eigrp_v6": { @@ -5834,7 +5888,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_flow_control", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7631" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7644" } }, "configure_interface_for_authentication": { @@ -5843,7 +5897,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_for_authentication", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2034" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2035" } }, "configure_interface_for_dot1x": { @@ -5852,7 +5906,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_for_dot1x", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2060" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2061" } }, "configure_interface_for_mab": { @@ -5861,7 +5915,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_for_mab", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2111" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2112" } }, "configure_interface_inherit_disable": { @@ -5870,7 +5924,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_inherit_disable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6055" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6068" } }, "configure_interface_interfaces_on_port_channel": { @@ -5879,7 +5933,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_interfaces_on_port_channel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1432" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1433" } }, "configure_interface_ip_dhcp_relay_information_option_vpn_id": { @@ -5906,7 +5960,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ip_nbar", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9430" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9443" } }, "configure_interface_ip_tcp_adjust_mss": { @@ -5915,7 +5969,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ip_tcp_adjust_mss", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7179" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7192" } }, "configure_interface_ip_verify_source": { @@ -5924,7 +5978,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ip_verify_source", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8034" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8047" } }, "configure_interface_ip_verify_unicast_notification": { @@ -5933,7 +5987,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ip_verify_unicast_notification", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6854" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6867" } }, "configure_interface_ip_verify_unicast_reversepath": { @@ -5942,7 +5996,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ip_verify_unicast_reversepath", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6824" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6837" } }, "configure_interface_ip_verify_unicast_source": { @@ -5951,7 +6005,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ip_verify_unicast_source", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6548" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6561" } }, "configure_interface_ip_wccp": { @@ -5960,7 +6014,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ip_wccp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8616" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8629" } }, "configure_interface_ipv6_acl": { @@ -5987,7 +6041,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ipv6_tcp_adjust_mss", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7219" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7232" } }, "configure_interface_ipv6_verify_unicast_reversepath": { @@ -5996,7 +6050,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ipv6_verify_unicast_reversepath", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6880" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6893" } }, "configure_interface_ipv6_verify_unicast_source": { @@ -6005,7 +6059,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ipv6_verify_unicast_source", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6650" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6663" } }, "configure_interface_isis_network": { @@ -6023,7 +6077,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_keepalive", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8195" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8208" } }, "configure_interface_l2protocol_tunnel": { @@ -6032,7 +6086,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_l2protocol_tunnel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8221" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8234" } }, "configure_interface_l3_port_channel": { @@ -6041,7 +6095,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_l3_port_channel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1303" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1304" } }, "configure_interface_lacp_fast_switchover": { @@ -6050,7 +6104,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_lacp_fast_switchover", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7435" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7448" } }, "configure_interface_lacp_max_bundle": { @@ -6059,7 +6113,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_lacp_max_bundle", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7492" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7505" } }, "configure_interface_logging_event": { @@ -6068,7 +6122,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_logging_event", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6955" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6968" } }, "configure_interface_mac_address": { @@ -6077,7 +6131,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_mac_address", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3446" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3447" } }, "configure_interface_macro": { @@ -6086,7 +6140,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_macro", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L538" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L589" } }, "configure_interface_macro_auto_port_sticky": { @@ -6095,7 +6149,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_macro_auto_port_sticky", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5957" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5970" } }, "configure_interface_monitor_session": { @@ -6104,7 +6158,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_monitor_session", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1790" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1791" } }, "configure_interface_monitor_session_mtu": { @@ -6131,7 +6185,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_monitor_session_shutdown", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7720" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7733" } }, "configure_interface_monitor_session_shutdown_erspan_dest": { @@ -6158,7 +6212,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_no_switchport", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2930" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2931" } }, "configure_interface_no_switchport_voice_vlan": { @@ -6167,7 +6221,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_no_switchport_voice_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8985" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8998" } }, "configure_interface_ospfv3": { @@ -6176,7 +6230,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_ospfv3", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2735" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2736" } }, "configure_interface_ospfv3_ipsec_ah": { @@ -6248,7 +6302,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_pvlan_host_assoc", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3561" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3562" } }, "configure_interface_pvlan_mapping": { @@ -6257,7 +6311,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_pvlan_mapping", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9205" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9218" } }, "configure_interface_pvlan_mode_with_submode": { @@ -6266,7 +6320,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_pvlan_mode_with_submode", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4280" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4281" } }, "configure_interface_range_dhcp_channel_group_mode": { @@ -6284,7 +6338,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_range_no_switchport", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9574" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9587" } }, "configure_interface_reg_segment": { @@ -6293,7 +6347,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_reg_segment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4101" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4102" } }, "configure_interface_reg_segment_timer": { @@ -6302,7 +6356,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_reg_segment_timer", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4173" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4174" } }, "configure_interface_service_policy": { @@ -6311,7 +6365,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_service_policy", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4719" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4724" } }, "configure_interface_snmp_trap_mac_notification_change": { @@ -6320,7 +6374,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_snmp_trap_mac_notification_change", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7547" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7560" } }, "configure_interface_span_cost": { @@ -6329,7 +6383,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_span_cost", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6437" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6450" } }, "configure_interface_span_portfast": { @@ -6338,7 +6392,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_span_portfast", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3511" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3512" } }, "configure_interface_span_vlan_priority": { @@ -6347,7 +6401,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_span_vlan_priority", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6324" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6337" } }, "configure_interface_speed": { @@ -6356,7 +6410,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_speed", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5434" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5447" } }, "configure_interface_split_horizon_eigrp": { @@ -6374,7 +6428,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_storm_control_action", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3857" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3858" } }, "configure_interface_storm_control_level": { @@ -6383,7 +6437,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_storm_control_level", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3785" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3786" } }, "configure_interface_switchport": { @@ -6392,7 +6446,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7808" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7821" } }, "configure_interface_switchport_access_vlan": { @@ -6410,7 +6464,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_block_address", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6909" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6922" } }, "configure_interface_switchport_dot1q_ethertype": { @@ -6419,7 +6473,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_dot1q_ethertype", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7069" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7082" } }, "configure_interface_switchport_mode": { @@ -6428,7 +6482,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_mode", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2901" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2902" } }, "configure_interface_switchport_port_security_violation": { @@ -6437,7 +6491,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_port_security_violation", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6226" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6239" } }, "configure_interface_switchport_pvlan_and_native_vlan": { @@ -6446,7 +6500,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_pvlan_and_native_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4307" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4308" } }, "configure_interface_switchport_pvlan_association": { @@ -6455,7 +6509,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_pvlan_association", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4334" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4335" } }, "configure_interface_switchport_pvlan_mapping": { @@ -6464,7 +6518,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_pvlan_mapping", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4362" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4363" } }, "configure_interface_switchport_pvlan_mode": { @@ -6473,7 +6527,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_pvlan_mode", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3533" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3534" } }, "configure_interface_switchport_trunk": { @@ -6482,7 +6536,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_trunk", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1524" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1525" } }, "configure_interface_switchport_trunk_vlan": { @@ -6491,7 +6545,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_trunk_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3078" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3079" } }, "configure_interface_switchport_voice_vlan": { @@ -6500,7 +6554,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_switchport_voice_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3052" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3053" } }, "configure_interface_template": { @@ -6509,7 +6563,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2988" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2989" } }, "configure_interface_template_sticky": { @@ -6518,7 +6572,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_template_sticky", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5997" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6010" } }, "configure_interface_template_with_default_device_tracking_policy": { @@ -6608,7 +6662,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interface_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9552" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9565" } }, "configure_interface_vlan_priority": { @@ -6671,7 +6725,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interfaces_on_port_channel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1479" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1480" } }, "configure_interfaces_shutdown": { @@ -6687,7 +6741,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interfaces_shutdown", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1363" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1364" }, "iosxr": { "doc": " Shutdown the listed interfaces in the given list on the device\n\n Args:\n List['string']: Interfaces to shutdown\n device ('obj'): Device object\n ", @@ -6717,7 +6771,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_interfaces_unshutdown", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1386" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1387" }, "iosxr": { "doc": " Enable the listed interfaces in the given list on the device\n\n Args:\n List['string']: Interfaces to enable\n device ('obj'): Device object\n ", @@ -6938,7 +6992,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_dlep", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7828" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7841" } }, "configure_ip_domain_lookup": { @@ -6956,7 +7010,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_domain_name", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2794" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2808" } }, "configure_ip_domain_name_vrf_mgmt_vrf": { @@ -6965,7 +7019,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_domain_name_vrf_mgmt_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2812" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2826" } }, "configure_ip_domain_timeout": { @@ -7004,13 +7058,22 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform_licensing/configure.py#L182" } }, + "configure_ip_http_client_secure_trustpoint": { + "iosxe": { + "doc": " Configures the secure trustpoint\n Example : ip http client secure-trustpoint {trustpoint_name}\n\n Args:\n device ('obj'): device to use\n license ('str): secure-trustpoint\n\n Returns:\n None\n\n Raises:\n SubCommandFailure\n ", + "module_name": "platform.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_ip_http_client_secure_trustpoint", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5598" + } + }, "configure_ip_http_client_source_interface": { "iosxe": { "doc": " Configure ip http client source-interface\n Args:\n device ('obj'): device to use\n interface_id ('str'): vlan id\n Returns\n None\n Raises:\n SubCommandFailure\n ", "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_http_client_source_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2904" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2918" } }, "configure_ip_http_client_source_interface_vlan_domain_lookup": { @@ -7019,7 +7082,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_http_client_source_interface_vlan_domain_lookup", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2847" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2861" } }, "configure_ip_http_client_source_interface_vlan_domain_lookup_name_server_vrf_mgmt_vrf": { @@ -7028,7 +7091,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_http_client_source_interface_vlan_domain_lookup_name_server_vrf_mgmt_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2883" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2897" } }, "configure_ip_http_secure_server": { @@ -7055,7 +7118,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_igmp_join_group", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5580" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5593" } }, "configure_ip_igmp_join_group_source": { @@ -7226,7 +7289,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_igmp_static_group", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5521" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5534" } }, "configure_ip_local_pool": { @@ -7262,7 +7325,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_mtu", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3223" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3224" } }, "configure_ip_multicast_routing": { @@ -7276,11 +7339,11 @@ }, "configure_ip_multicast_routing_distributed": { "iosxe": { - "doc": " configure ip multicast routing on device\n Args:\n device (`obj`): Device object\n Returns:\n None\n ", - "module_name": "mcast.configure", + "doc": "Configure IP multicast routing\n Args:\n device (`obj`): Device object\n no_spd (): If True, turn off selective packet discard. Default False.\n punt_limit (`str` or `int`): Punt limit. Acceptable values are:\n integer (packets per second)\n default\n disable\n Return:\n None\n Raise:\n SubCommandFailure: Failure while configuring\n ", + "module_name": "multicast.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_multicast_routing_distributed", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mcast/configure.py#L48" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/multicast/configure.py#L450" } }, "configure_ip_multicast_vrf_routing": { @@ -7307,7 +7370,16 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_name_server_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2830" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2844" + } + }, + "configure_ip_on_atm_interface": { + "iosxe": { + "doc": " Configure IP on an atm interface\n Args:\n device (`obj`): Device object\n interface (`str`): Interface to get address\n vpi_vci ('str'): atm vpi/vci value\n vlan_id ('str', optional): sub-interface number, eg: interface ATM0/3/0.213 point-to-point\n ip_address (`str`, optional): IP addressed to be configured on interface, default value None\n mask (`str`, optional): Mask address to be used in configuration, default value None\n ipv6_address (`str`, optional): IPv6 address with subnet mask, default value None\n atm_encap_type (`str`, optional): Encapsulation type, default value None\n protocol (`str`, optional): atm pvc protocol type, eg: ppp, pppoe-client\n dialer_num (`str`, optional): dialer pool number, default value None\n atm_qos ('str', optional): ATM PVC qos eg: vbr-rt, vbr-nrt, cbr\n pcr ('str', optional): pcr in string; default value \"\"\n scr ('str', optional): scr in string; default value \"\"\n bc ('str', optional): bc in string; default value \"\"\n Returns:\n None\n Warning messages\n Raises:\n SubCommandFailure\n ", + "module_name": "interface.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_ip_on_atm_interface", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9652" } }, "configure_ip_on_tunnel_interface": { @@ -7316,7 +7388,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_on_tunnel_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3108" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3109" } }, "configure_ip_ospf_mtu_ignore": { @@ -7442,7 +7514,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_scp_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4707" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4737" } }, "configure_ip_scp_server_enable": { @@ -7451,7 +7523,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_scp_server_enable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5410" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5467" } }, "configure_ip_scp_username": { @@ -7460,7 +7532,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_scp_username", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4675" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4705" } }, "configure_ip_sftp_password": { @@ -7469,7 +7541,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_sftp_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4739" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4769" } }, "configure_ip_sftp_username": { @@ -7478,7 +7550,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_sftp_username", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4642" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4672" } }, "configure_ip_source_binding": { @@ -7487,7 +7559,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_source_binding", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4098" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4113" } }, "configure_ip_ssh_source_interface": { @@ -7496,7 +7568,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_ssh_source_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5434" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5491" } }, "configure_ip_ssh_version": { @@ -7505,7 +7577,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_ssh_version", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L908" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L912" } }, "configure_ip_subnet_to_sgt_mapping_vrf": { @@ -7523,7 +7595,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_tftp_blocksize", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1425" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1477" } }, "configure_ip_to_sgt_mapping_vrf": { @@ -7541,7 +7613,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ip_unnumbered_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5319" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5332" } }, "configure_ip_vrf_forwarding_interface": { @@ -7631,7 +7703,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv4_dhcp_relay_helper", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2257" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2258" } }, "configure_ipv4_dhcp_relay_helper_vrf": { @@ -7640,7 +7712,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv4_dhcp_relay_helper_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5629" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5642" } }, "configure_ipv4_object_group_network": { @@ -7748,7 +7820,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_address_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8805" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8818" } }, "configure_ipv6_address_on_hsrp_interface": { @@ -7757,7 +7829,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_address_on_hsrp_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7146" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7159" } }, "configure_ipv6_destination_guard_attach_policy": { @@ -7793,7 +7865,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_dhcp_client_pd_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8008" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8021" } }, "configure_ipv6_dhcp_client_vendor_class": { @@ -7838,7 +7910,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_dhcp_relay", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2371" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2372" } }, "configure_ipv6_dhcp_relay_destination_ipv6address": { @@ -7892,7 +7964,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_enable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4486" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4491" } }, "configure_ipv6_flow_monitor": { @@ -8036,7 +8108,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_mld_static_group", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5552" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5565" } }, "configure_ipv6_mld_vlan": { @@ -8063,7 +8135,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_mtu", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5068" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5081" } }, "configure_ipv6_multicast_routing": { @@ -8081,7 +8153,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_nd", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2405" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2406" } }, "configure_ipv6_nd_dad_processing": { @@ -8090,7 +8162,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_nd_dad_processing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6786" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6799" } }, "configure_ipv6_nd_raguard_on_interface": { @@ -8117,7 +8189,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_nd_suppress_ra", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8730" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8743" } }, "configure_ipv6_object_group_network": { @@ -8216,7 +8288,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_prefix_name_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7987" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8000" } }, "configure_ipv6_raguard_policy": { @@ -8234,7 +8306,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_route_nexthop_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1039" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1008" } }, "configure_ipv6_static_route": { @@ -8243,7 +8315,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipv6_static_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L780" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L749" } }, "configure_ipv6_subnet_to_sgt_mapping": { @@ -8279,7 +8351,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipxe_forever", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L403" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L407" } }, "configure_ipxe_timeout": { @@ -8288,7 +8360,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_ipxe_timeout", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L385" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L389" } }, "configure_isakmp_key": { @@ -8475,7 +8547,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_key_config_key_password_encrypt", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3043" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3057" } }, "configure_l2vpn_evpn": { @@ -8556,7 +8628,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_lacp_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1562" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1563" } }, "configure_lacp_port_priority": { @@ -8682,7 +8754,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_license_smart_transport_off", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2724" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2738" } }, "configure_license_smart_transport_smart": { @@ -8736,7 +8808,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_line_vty", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3150" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3164" } }, "configure_line_vty_needs_enhancement": { @@ -8745,7 +8817,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_line_vty_needs_enhancement", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L946" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L950" } }, "configure_lineconsole_exectimeout": { @@ -8919,7 +8991,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_logging_buffered_persistent_url", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4272" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4287" } }, "configure_logging_console": { @@ -9099,7 +9171,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_macro_auto_global_processing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3632" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3646" } }, "configure_macro_auto_global_processing_on_interface": { @@ -9108,7 +9180,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_macro_auto_global_processing_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3594" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3608" } }, "configure_macro_auto_processing_on_interface": { @@ -9117,7 +9189,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_macro_auto_processing_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3771" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3785" } }, "configure_macro_auto_sticky": { @@ -9126,7 +9198,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_macro_auto_sticky", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L722" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L773" } }, "configure_macro_global_apply": { @@ -9135,7 +9207,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_macro_global_apply", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1849" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1901" } }, "configure_management": { @@ -9144,7 +9216,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L679" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L683" } }, "configure_management_credentials": { @@ -9153,7 +9225,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_credentials", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L12" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L16" } }, "configure_management_gateway": { @@ -9162,16 +9234,16 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_gateway", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L238" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L242" } }, "configure_management_gnmi": { "iosxe": { - "doc": "\n Configure device for management via gnmi.\n\n Args:\n device ('obj'): device object\n enable ('bool', optional): Enable and start GNxI. Default is True.\n server ('bool', optional): Enable the GNxI (insecure) server. Default is True.\n port ('int', optional): gnxi (insecure) server port. Default is None.\n Returns:\n None\n ", + "doc": "\n Configure device for management via gnmi.\n\n When secure_server is True, this API will generate keys and certificates using openssl\n for use on the device and by the gNMI connection class. It will install\n the key and certificates on the device and update the gnmi connection with\n the paths to the files generated.\n\n Args:\n device ('obj'): device object\n enable ('bool', optional): Enable and start GNxI. Default is True.\n server ('bool', optional): Enable the GNxI (insecure) server. Default is True.\n port ('int', optional): gnxi (insecure) server port. Default is None.\n secure_server ('bool', optional): Enable the GNxI secure server. Default to False.\n secure_client_auth ('bool', optional): Enable client authentication. Default to False.\n secure_trustpoint ('str', optional): Set GNxI server certificate trustpoint. Default to 'trustpoint1'.\n password ('str', optional): rsa_ssl key generation password Default is ''.\n aes ('bool', optional): Use AES encryption if True, else use 3DES. Default to True.\n rsa_key_size ('int', optional): rsa_key_size value to be used for rsakeypair generation. Default to 2048.\n local_path ('str', optional): Device path where pkcs12 file will be copied. Default to flash:/.\n Returns:\n None\n ", "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_gnmi", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L990" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L993" } }, "configure_management_http": { @@ -9180,7 +9252,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_http", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L462" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L466" } }, "configure_management_ip": { @@ -9189,7 +9261,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_ip", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L92" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L96" } }, "configure_management_netconf": { @@ -9198,7 +9270,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_netconf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L606" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L610" } }, "configure_management_ntp": { @@ -9207,7 +9279,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_ntp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L432" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L436" } }, "configure_management_protocols": { @@ -9216,7 +9288,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_protocols", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L634" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L638" } }, "configure_management_routes": { @@ -9225,7 +9297,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_routes", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L333" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L337" } }, "configure_management_ssh": { @@ -9234,7 +9306,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_ssh", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L489" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L493" } }, "configure_management_telnet": { @@ -9243,7 +9315,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_telnet", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L530" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L534" } }, "configure_management_tftp": { @@ -9252,7 +9324,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_tftp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L406" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L410" } }, "configure_management_vrf": { @@ -9261,7 +9333,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L46" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L50" } }, "configure_management_vty_lines": { @@ -9270,7 +9342,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_management_vty_lines", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L554" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L558" } }, "configure_masked_unmasked_credentials": { @@ -9315,7 +9387,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_mdix_auto", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4171" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4186" } }, "configure_mdns": { @@ -9363,6 +9435,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1295" } }, + "configure_mdns_global_service_buffer": { + "iosxe": { + "doc": " Configure mDNS(Multicast Domain Name System) global service-buffer\n Args:\n device ('obj'): device to use\n controllername ('str'): controller name\n mode ('str'): enable/disable\n Returns:\n None\n Raises:\n SubCommandFailure: Failed configuring mdns global service-buffer \n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_mdns_global_service_buffer", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1938" + } + }, "configure_mdns_location_filter": { "iosxe": { "doc": " Configures location filter details on vlan\n\n Args:\n device ('obj'): device to use\n location_filter ('str'): location filter name\n location_group ('str'): location group name\n vlan ('int'): Vlan id\n role ('str'): Role name\n Returns:\n None\n Raises:\n SubCommandFailure\n ", @@ -9387,7 +9468,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_mdns_on_interface_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5190" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5203" } }, "configure_mdns_query_response_mode": { @@ -9399,6 +9480,33 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1170" } }, + "configure_mdns_remote_cache_enable": { + "iosxe": { + "doc": " Enable mDNS(Multicast Domain Name System) remote cache \n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure: Failed enabling mdns remote cache\n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_mdns_remote_cache_enable", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1810" + } + }, + "configure_mdns_remote_cache_max_limit": { + "iosxe": { + "doc": " Configure mDNS(Multicast Domain Name System) remote cache max limit\n Args:\n device ('obj'): device to use\n limit ('int'): remote cache maximum service-instance limit\n Returns:\n None\n Raises:\n SubCommandFailure: Failed configuring mdns remote cache max limit\n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_mdns_remote_cache_max_limit", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1852" + } + }, + "configure_mdns_remote_purge_timer": { + "iosxe": { + "doc": " Configure mDNS(Multicast Domain Name System) remote cache purge timer\n Args:\n device ('obj'): device to use\n timer ('int'): remote cache purge timer value\n Returns:\n None\n Raises:\n SubCommandFailure: Failed configuring mdns remote purge timer \n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_mdns_remote_purge_timer", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1895" + } + }, "configure_mdns_sd_agent": { "iosxe": { "doc": " Configures mDNS(Multicast Domain Name System) agent\n\n Args:\n device (`obj`): Device object\n timer ('int', optional): Timer value. Default value is None\n count ('int', optional): Count value. Default value is None\n\n Returns:\n None\n Raises:\n SubCommandFailure\n ", @@ -9758,7 +9866,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_monitor_erspan_source_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8333" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8346" } }, "configure_mpls_label_mode": { @@ -9893,7 +10001,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_mtc", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L783" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L787" } }, "configure_multicast_routing_mvpn_vrf": { @@ -10100,7 +10208,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "configure_netconf_yang_intelligent_sync", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L876" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L880" } }, "configure_network_policy_profile_voice_vlan": { @@ -10136,7 +10244,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_no_boot_system_switch_all", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L321" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L325" } }, "configure_no_ptp_enable_on_interface": { @@ -10614,7 +10722,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_periodic_time_range", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4957" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5014" } }, "configure_pfs_enable_or_disable_under_gkm_group": { @@ -10632,7 +10740,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_physical_interface_vmi", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7909" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7922" } }, "configure_pim_register_source": { @@ -10668,7 +10776,7 @@ "module_name": "pki.configure", "package": "genie.libs.sdk.apis", "uid": "configure_pki_authenticate_certificate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py#L907" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py#L913" } }, "configure_pki_enroll": { @@ -10695,7 +10803,7 @@ "module_name": "pki.configure", "package": "genie.libs.sdk.apis", "uid": "configure_pki_export", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py#L791" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py#L797" } }, "configure_pki_export_pem": { @@ -10740,7 +10848,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_platform_qos_port_channel_aggregate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L173" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L177" } }, "configure_platform_shell": { @@ -10749,7 +10857,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_platform_shell", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2759" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2773" } }, "configure_platform_sudi_cmca3": { @@ -10801,7 +10909,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_policy_map_control", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2643" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2657" } }, "configure_policy_map_on_device": { @@ -10873,7 +10981,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_port_channel_lacp_max_bundle", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5378" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5391" } }, "configure_port_channel_mode": { @@ -10891,7 +10999,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_port_channel_persistent", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2689" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2703" } }, "configure_port_channel_standalone_disable": { @@ -10900,7 +11008,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_port_channel_standalone_disable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4891" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4896" } }, "configure_port_sgt": { @@ -10918,7 +11026,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_portchannel_dpi_algorithm", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8564" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8577" } }, "configure_power_efficient_ethernet_auto": { @@ -10927,7 +11035,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_power_efficient_ethernet_auto", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7700" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7713" } }, "configure_power_inline": { @@ -10936,7 +11044,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_power_inline", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5753" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5766" } }, "configure_power_inline_auto_max": { @@ -10945,16 +11053,16 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_power_inline_auto_max", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2957" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2971" } }, "configure_pppoe_enable_interface": { "iosxe": { - "doc": " Configure pppoe enable group on interface\n Args:\n device (`obj`): Device object\n interface (`str`): Interface name\n name (`str`): pppoe/bba group name\n dial_pool_num ('str'): pppoe-client dial-pool-member \n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "doc": " Configure pppoe enable group on interface\n Args:\n device (`obj`): Device object\n interface (`str`): Interface name\n name (`str`): pppoe/bba group name\n dial_pool_num ('str'): pppoe-client dial-pool-member \n ppp_max_payload ('str', optional): pppoe-client ppp-max-payload \n Returns:\n None\n Raises:\n SubCommandFailure\n ", "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_pppoe_enable_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4955" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4960" } }, "configure_prefix_list_prefix_list": { @@ -10981,7 +11089,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_print_timestamp_for_show_command", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8691" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8704" } }, "configure_private_vlan_on_vlan": { @@ -10999,7 +11107,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_process_cpu_statistics_limit_entry_percentage_size", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3706" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3720" } }, "configure_process_cpu_threshold_type_rising_interval": { @@ -11008,7 +11116,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_process_cpu_threshold_type_rising_interval", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3666" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3680" } }, "configure_protocol_version_optimize_cli_under_gkm_group": { @@ -11188,7 +11296,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_qfp_drop_threshold", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5362" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5419" } }, "configure_qos_policy": { @@ -11395,7 +11503,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_rep_admin_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4772" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4802" } }, "configure_replace": { @@ -11575,7 +11683,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_routing_ip_route_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L534" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L503" } }, "configure_routing_ipv6_route": { @@ -11584,7 +11692,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_routing_ipv6_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L847" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L816" } }, "configure_routing_ipv6_route_vrf": { @@ -11593,7 +11701,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_routing_ipv6_route_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L925" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L894" } }, "configure_routing_static_route": { @@ -11602,7 +11710,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_routing_static_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L183" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L152" } }, "configure_routing_static_routev6": { @@ -11611,7 +11719,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_routing_static_routev6", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L100" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L69" } }, "configure_rsvp_gracefull_restart": { @@ -11683,7 +11791,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_scale_static_route_via_tftp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L280" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L249" } }, "configure_scale_subintfs_via_tftp": { @@ -11692,7 +11800,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_scale_subintfs_via_tftp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1965" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1966" } }, "configure_scale_vrf_via_tftp": { @@ -11719,7 +11827,7 @@ "module_name": "custom_template.configure", "package": "genie.libs.sdk.apis", "uid": "configure_sdm_prefer", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py#L70" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py#L75" } }, "configure_sdm_prefer_core": { @@ -11728,7 +11836,7 @@ "module_name": "custom_template.configure", "package": "genie.libs.sdk.apis", "uid": "configure_sdm_prefer_core", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py#L53" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py#L58" } }, "configure_sdm_prefer_custom_fib": { @@ -11737,12 +11845,12 @@ "module_name": "custom_template.configure", "package": "genie.libs.sdk.apis", "uid": "configure_sdm_prefer_custom_fib", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py#L28" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py#L33" } }, "configure_sdm_prefer_custom_template": { "iosxe": { - "doc": " Configure SDM Prefer Custom Template\n Args:\n device ('obj'): device to use\n attribute ('str'): sdm prefer custom template value (Ex : commit, vlan)\n\n Returns:\n None\n Raises:\n SubCommandFailure: Failed to configure SDM Prefer Custom Template\n ", + "doc": " Configure SDM Prefer Custom Template\n Args:\n device ('obj'): device to use\n attribute ('str'): sdm prefer custom template value (Ex : commit, vlan)\n custom_template ('str'): sdm prefer custom template value (Ex : pbr)\n entries('int'): number of entries\n priority('int'): priority number\n Returns:\n None\n Raises:\n SubCommandFailure: Failed to configure SDM Prefer Custom Template\n ", "module_name": "custom_template.configure", "package": "genie.libs.sdk.apis", "uid": "configure_sdm_prefer_custom_template", @@ -11800,7 +11908,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_service_compress_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4565" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4595" } }, "configure_service_dhcp": { @@ -11818,7 +11926,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_service_instance", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9352" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9365" } }, "configure_service_internal": { @@ -11845,7 +11953,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_service_performance", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3009" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3023" } }, "configure_service_policy": { @@ -11881,7 +11989,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_service_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2631" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2645" } }, "configure_service_template_linksec": { @@ -11989,7 +12097,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_service_timestamps", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L560" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L611" } }, "configure_set_clock_calendar": { @@ -11998,7 +12106,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_set_clock_calendar", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1492" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1544" } }, "configure_shape_map": { @@ -12088,7 +12196,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_snmp_mib_bulkstat", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L851" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L903" } }, "configure_snmp_mib_bulkstat_transfer": { @@ -12097,7 +12205,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_snmp_mib_bulkstat_transfer", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4520" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4550" } }, "configure_snmp_server_contact": { @@ -12106,7 +12214,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_snmp_server_contact", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1303" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1355" } }, "configure_snmp_server_enable_traps_power_ethernet_group": { @@ -12142,16 +12250,16 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_snmp_server_location", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1342" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1394" } }, "configure_snmp_server_manager": { "iosxe": { - "doc": " Configures snmp-server manager\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure\n ", - "module_name": "platform.configure", + "doc": "\n Configures the snmp-server manager\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "snmp.configure", "package": "genie.libs.sdk.apis", "uid": "configure_snmp_server_manager", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2994" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/configure.py#L508" } }, "configure_snmp_server_trap": { @@ -12187,7 +12295,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_software_auto_upgrade", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2000" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2014" } }, "configure_source_template": { @@ -12196,7 +12304,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_source_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1648" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1700" } }, "configure_source_tracking_on_interface": { @@ -12214,7 +12322,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_span_monitor_session", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4845" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4850" } }, "configure_spanning_tree": { @@ -12412,7 +12520,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_mac_persistent_timer", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1013" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L982" } }, "configure_stack_power_default_mode": { @@ -12421,7 +12529,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_power_default_mode", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1957" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1971" } }, "configure_stack_power_mode_power_shared": { @@ -12430,7 +12538,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_power_mode_power_shared", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3502" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3516" } }, "configure_stack_power_mode_redundant": { @@ -12439,16 +12547,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_power_mode_redundant", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1909" - } - }, - "configure_stack_power_stack": { - "iosxe": { - "doc": " Configures stack-power stack\n Example : stack-power stack test\n\n Args:\n device ('obj'): device to use\n powerstack_name ('str'): Power stack name - Up to 31 chars\n Returns:\n None\n Raises:\n SubCommandFailure\n ", - "module_name": "platform.configure", - "package": "genie.libs.sdk.apis", - "uid": "configure_stack_power_stack", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1871" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1923" } }, "configure_stack_power_switch": { @@ -12457,7 +12556,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_power_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2612" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2626" } }, "configure_stack_power_switch_no_standalone": { @@ -12466,7 +12565,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_power_switch_no_standalone", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3479" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3493" } }, "configure_stack_power_switch_power_priority": { @@ -12475,7 +12574,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_power_switch_power_priority", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3312" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3326" } }, "configure_stack_power_switch_standalone": { @@ -12484,7 +12583,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stack_power_switch_standalone", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3457" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3471" } }, "configure_stackpower_stack": { @@ -12493,7 +12592,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stackpower_stack", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4401" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4416" } }, "configure_stackpower_stack_switch_standalone": { @@ -12502,7 +12601,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_stackpower_stack_switch_standalone", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3403" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3417" } }, "configure_stackwise_virtual_dual_active_interfaces": { @@ -12637,7 +12736,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_subinterface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4070" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4071" } }, "configure_subinterfaces_for_vlan_range": { @@ -12646,7 +12745,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_subinterfaces_for_vlan_range", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1910" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1911" } }, "configure_subscriber_template": { @@ -12664,7 +12763,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_svi", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3301" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3302" } }, "configure_switch_priority": { @@ -12678,11 +12777,11 @@ }, "configure_switch_provision": { "iosxe": { - "doc": " Configures switch provisioning / offline configuration\n Example : switch 3 provision c9300-24h\n\n Args:\n device ('obj'): device to use\n switch_number('int'): switch number (Range 1-16)\n sku_type('str'): type of switch\n\n Returns:\n None\n\n Raises: \n SubCommandFailure\n ", - "module_name": "offline_provisioning.configure", + "doc": " Configure switch provision for switch\n Args:\n device ('obj'): Device object\n switch_number('int'): switch number\n model ('str'): switch model\n Raises:\n SubCommandFailure\n ", + "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switch_provision", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/offline_provisioning/configure.py#L11" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L554" } }, "configure_switch_provision_model": { @@ -12691,7 +12790,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switch_provision_model", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2977" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2991" } }, "configure_switchport_mode_trunk_snooping_trust": { @@ -12700,7 +12799,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_mode_trunk_snooping_trust", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4593" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4598" } }, "configure_switchport_nonegotiate": { @@ -12709,7 +12808,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_nonegotiate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4228" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4229" } }, "configure_switchport_port_security_aging_time": { @@ -12754,7 +12853,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_protected", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8153" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8166" } }, "configure_switchport_pvlan_trunk_allowed_vlan": { @@ -12763,7 +12862,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_pvlan_trunk_allowed_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9115" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9128" } }, "configure_switchport_pvlan_trunk_native_vlan": { @@ -12772,7 +12871,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_pvlan_trunk_native_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9161" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9174" } }, "configure_switchport_trunk": { @@ -12781,7 +12880,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_trunk", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3276" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3277" } }, "configure_switchport_trunk_allowed_vlan": { @@ -12790,7 +12889,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_trunk_allowed_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5350" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5363" } }, "configure_switchport_trunk_allowed_vlan_except": { @@ -12817,7 +12916,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_trunk_native_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4568" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4573" } }, "configure_switchport_trunk_pruning_vlan": { @@ -12844,7 +12943,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_trunk_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4745" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4750" } }, "configure_switchport_trunk_vlan_with_speed_and_duplex": { @@ -12853,7 +12952,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_switchport_trunk_vlan_with_speed_and_duplex", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4771" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4776" } }, "configure_switchport_vlan_mapping": { @@ -12880,7 +12979,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_system_disable_password_recovery_switch_all", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1244" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1296" } }, "configure_system_ignore_startupconfig_switch_all": { @@ -12889,7 +12988,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_system_ignore_startupconfig_switch_all", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1135" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1187" } }, "configure_system_jumbomtu": { @@ -12898,7 +12997,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_system_jumbomtu", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L658" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L627" } }, "configure_table_map": { @@ -13050,6 +13149,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/logging/configure.py#L78" } }, + "configure_terminal_settings": { + "iosxe": { + "doc": "\n Configure terminal length/width\n\n Args:\n device ('obj'): Device object\n length ('int'): Terminal length of the device (Default: 24)\n width ('int'): Terminal width of the device (Default: 80)\n Returns:\n None\n Raises:\n SubCommandFailure: Failed to configure terminal setting\n ", + "module_name": "system.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_terminal_settings", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/system/configure.py#L79" + } + }, "configure_terminal_width": { "iosxe": { "doc": " terminal width 0\n Args:\n device (`obj`): Device object\n char_num ('int'): Number of characters on a screen line\n Returns:\n None\n Raises:\n SubCommandFailure\n ", @@ -13065,7 +13173,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "configure_tftp_source_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L730" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L699" } }, "configure_thousand_eyes_application": { @@ -13140,6 +13248,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/ipsec/configure.py#L1018" } }, + "configure_type_access_list_action": { + "iosxe": { + "doc": " Configuring ip/mac access-list with permission\n Example: Mac access-list extended PACL_MAC_Permit \n no permit any any {logging}\n permit any any {logging}\n or\n ip access-list extended PACL_IP_Deny \n No Deny ip any any {logging}\n Deny ip any any {logging}\n Args:\n device ('obj'): device to use\n type ('str'): (ip | mac) which type it belongs to\n name ('str'): name of the ACL to which the entry belongs\n action ('str'): (permit | deny) permits or denies traffic\n action_type ('str')(optional): defines the action/permission type (Ex : ip)\n action_suffix ('str')(optional): suffix that can ass in the last of the command (Ex : logging)\n Returns:\n None\n Raises: \n SubCommandFailure\n ", + "module_name": "acl.configure", + "package": "genie.libs.sdk.apis", + "uid": "configure_type_access_list_action", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/acl/configure.py#L2114" + } + }, "configure_udld": { "iosxe": { "doc": " Configures UDLD on Interface \n Args:\n device (`obj`): Device object\n interface (`str`): interface\n Return:\n None\n Raise:\n SubCommandFailure: Failed configuring interface\n ", @@ -13155,7 +13272,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_udld_aggressive", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2460" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2474" } }, "configure_udld_alert_mode": { @@ -13178,11 +13295,11 @@ }, "configure_udld_message_time": { "iosxe": { - "doc": " Configures udld message time\n Example : udld message time 30\n Args:\n device ('obj'): device to use\n time ('int'): Time in seconds between sending of messages in steady state\n Returns:\n None\n Raises:\n SubCommandFailure\n ", - "module_name": "platform.configure", + "doc": " Configures UDLD Message Time on Target Device globally \n Args:\n device ('obj') : device to use\n message_time ('int') : Time in seconds between sending of messages 1-90\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "udld.configure", "package": "genie.libs.sdk.apis", "uid": "configure_udld_message_time", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2477" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/udld/configure.py#L95" } }, "configure_udld_port_aggressive": { @@ -13191,7 +13308,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_udld_port_aggressive", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2513" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2527" } }, "configure_udld_recovery": { @@ -13236,7 +13353,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_uplink_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4509" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4514" } }, "configure_username": { @@ -13263,7 +13380,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_vfi", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4802" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4807" } }, "configure_vfi_context_evpn": { @@ -13281,7 +13398,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_virtual_service", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1539" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1591" } }, "configure_virtual_service_vnic_gateway_guest_ip_address": { @@ -13290,16 +13407,16 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "configure_virtual_service_vnic_gateway_guest_ip_address", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L819" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L871" } }, "configure_virtual_template": { "iosxe": { - "doc": " Configure virtual-template interface\n\n Args:\n device (`obj`): Device object\n virtual_template_number ('int') : virtual template number\n unnumbered_interface (`str`): Interface name\n auth('bool', optional): check for authentication\n authentication ('str', optional) : PAP, CHAP\n mtu ('str', optional) : mtu value\n mss:('bool', optional): check for mss config\n mss_size('int', optional): Maximum segment size\n load_delay('bool', optional):load_delay check\n load_delay_interval('int', optional): load delay\n no_ip_redirects('bool', optional): no ip redirects option\n no_peer_ip('bool', optional): no peer ip default option\n pool_name('string', optional): peer default ip address pool \n For the arguments that are optional, the default value is None.\n\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "doc": " Configure virtual-template interface\n\n Args:\n device (`obj`): Device object\n virtual_template_number ('int') : virtual template number\n unnumbered_interface (`str`): Interface name\n auth('bool', optional): check for authentication\n authentication ('str', optional) : PAP, CHAP\n mtu ('str', optional) : mtu value\n mss:('bool', optional): check for mss config\n mss_size('int', optional): Maximum segment size\n load_delay('bool', optional):load_delay check\n load_delay_interval('int', optional): load delay\n no_ip_redirects('bool', optional): no ip redirects option\n no_peer_ip('bool', optional): no peer ip default option\n pool_name('string', optional): peer default ip address pool \n ipv6_pool_name('string', optional): peer default ipv6 pool \n For the arguments that are optional, the default value is None.\n\n Returns:\n None\n Raises:\n SubCommandFailure\n ", "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_virtual_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4390" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4391" } }, "configure_vlan_agent": { @@ -13452,7 +13569,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_vrf_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1702" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1703" } }, "configure_vrf_rd_value": { @@ -13470,7 +13587,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_vrf_select_source", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5694" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5707" } }, "configure_vrrp_interface": { @@ -13488,7 +13605,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_vrrp_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7297" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7310" } }, "configure_vrrp_version_on_device": { @@ -13497,7 +13614,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "configure_vrrp_version_on_device", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7282" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7295" } }, "configure_vtp_domain": { @@ -13578,7 +13695,7 @@ "module_name": "apphosting.configure", "package": "genie.libs.sdk.apis", "uid": "confirm_iox_enabled_requested_storage_media", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py#L326" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py#L327" } }, "convert_server_to_linux_device": { @@ -13587,7 +13704,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "convert_server_to_linux_device", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1490" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1491" } }, "copy_config_from_tftp_to_media": { @@ -13623,7 +13740,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "copy_file_from_tftp_ftp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L446" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L447" } }, "copy_file_to_running_config": { @@ -13644,20 +13761,20 @@ }, "copy_file_with_scp": { "iosxe": { - "doc": " Copy files to sftp location\n\n Args:\n device ('obj'): Device object to modify configuration\n host ('str'): scp host ip address\n file('str'): file name\n username ('str',optional): sftp host VM username\n password ('str',optional): sftp host vm password\n path('str',optional): storage file path in the VM\n ex:)\n copy file scp://username:password@host/\n timeout('int', Optional): timeout in seconds for configuration file load to device(Default is 30 seconds)\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "doc": " Copy files to scp location\n\n Args:\n device ('obj'): Device object to modify configuration\n host ('str'): scp host ip address\n file('str'): file name\n username ('str',optional): scp host VM username\n password ('str',optional): scp host vm password\n path('str',optional): storage file path in the local directry\n timeout('int', Optional): timeout in seconds for configuration file load to device(Default is 30 seconds)\n\n copy files to scp location from device\n ex: copy file scp://username:password@host/\n : copy test.txt scp://root:cisco@1.2.3.4/\n \n copy files from scp location to device\n ex: copy scp://username:password@host/file path \n : copy scp://root:cisco@1.2.3.4/test.txt flash:/\n\n Returns:\n None\n Raises:\n SubCommandFailure\n \n ", "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "copy_file_with_scp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4883" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4926" } }, "copy_file_with_sftp": { "iosxe": { - "doc": " Copy files to sftp location\n\n Args:\n device ('obj'): Device object to modify configuration\n host ('str'): sftp host ip address\n file('str'): file name\n username ('str',optional): sftp host VM username\n password ('str',optional): sftp host vm password\n path('str',optional): storage file path in the VM\n ex:)\n copy file sftp://username:password@host/\n timeout('int', Optional): timeout in seconds for configuration file load to device(Default is 30 seconds)\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "doc": " Copy files with sftp \n\n Args:\n device ('obj'): Device object to modify configuration\n host ('str'): sftp host ip address\n file('str'): file name\n username ('str',optional): sftp host VM username\n password ('str',optional): sftp host vm password\n path('str',optional): storage file path in the local directry\n timeout('int', Optional): timeout in seconds for configuration file load to device(Default is 30 seconds)\n \n copy files to sftp location from device\n ex: copy file sftp://username:password@host/\n : copy test.txt sftp://root:cisco@1.2.3.4/\n \n copy files from sftp location to device\n ex: copy sftp://username:password@host/file path \n : copy sftp://root:cisco@1.2.3.4/test.txt flash:/\n\n Returns:\n None\n Raises:\n SubCommandFailure\n ", "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "copy_file_with_sftp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4808" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4838" } }, "copy_from_device": { @@ -13673,7 +13790,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "copy_from_device", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1030" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1031" }, "nxos": { "aci": { @@ -13700,7 +13817,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "copy_pcap_file", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L263" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L264" } }, "copy_running_config_to_flash_memory": { @@ -13718,7 +13835,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "copy_running_config_to_tftp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L686" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L737" } }, "copy_startup_config_from_flash": { @@ -13727,7 +13844,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "copy_startup_config_from_flash", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3742" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3756" } }, "copy_startup_config_to_flash_memory": { @@ -13736,7 +13853,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "copy_startup_config_to_flash_memory", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L622" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L673" } }, "copy_startup_config_to_tftp": { @@ -13745,7 +13862,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "copy_startup_config_to_tftp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L651" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L702" } }, "copy_to_device": { @@ -13761,7 +13878,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "copy_to_device", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L852" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L853" }, "iosxr": { "doc": "\n Copy file from linux server to the device.\n\n Args:\n device (Device): Device object\n remote_path (str): remote file path on the server\n local_path (str): local file path to copy to on the device (default: harddisk:)\n server (str): hostname or address of the server (default: None)\n protocol(str): file transfer protocol to be used (default: http)\n vrf (str): vrf to use (optional)\n timeout(int): timeout value in seconds, default 300\n compact(bool): compress image option for n9k, defaults False\n fu(obj): FileUtils object to use instead of creating one. Defaults to None.\n use_kstack(bool): Use faster version of copy, defaults False\n Not supported with a file transfer protocol\n prompting for a username and password\n http_auth (bool): Use http authentication (default: True)\n\n Returns:\n None\n\n If the server is not specified, a HTTP server will be spawned\n on the local system and serve the directory of the file\n specified via remote_path and the copy operation will use http.\n\n If the device is connected via CLI proxy (unix jump host) and the proxy has\n 'socat' installed, the transfer will be done via the proxy automatically.\n ", @@ -13786,7 +13903,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "copy_to_server", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L376" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L377" } }, "create_dhcp_pool": { @@ -13966,7 +14083,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "default_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1610" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1611" }, "junos": { "doc": " Reset junos interface configuration \n\n Args:\n device (`obj`): Device object\n interfaces (`list`): List of interfaces to be defaulted\n Returns:\n Boolean\n ", @@ -14018,7 +14135,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "delete_file_on_server", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1388" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1389" } }, "delete_files": { @@ -14125,7 +14242,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "destroy_connection", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L752" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L753" } }, "detach_dhcpv6_guard_policy_to_interface": { @@ -14134,7 +14251,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "detach_dhcpv6_guard_policy_to_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2514" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2515" } }, "detach_dhcpv6_guard_policy_vlan": { @@ -14143,7 +14260,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "detach_dhcpv6_guard_policy_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2798" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2799" } }, "detach_ipv6_dhcp_guard_policy": { @@ -14170,7 +14287,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "detach_ipv6_raguard_policy_to_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2549" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2550" } }, "detach_ipv6_raguard_policy_to_vlan": { @@ -14179,16 +14296,25 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "detach_ipv6_raguard_policy_to_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2616" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2617" } }, "device_recovery_boot": { "com": { - "doc": "Boot device using golden image or using tftp server\n Args:\n device: device object\n break_count: \n console_activity_pattern: \n console_breakboot_char: \n console_breakboot_telnet_break: Use telnet `send break` to interrupt device boot\n grub_activity_pattern: \n grub_breakboot_char: \n timeout: \n recovery_password: \n golden_image: \n kickstart: \n system: \n tftp_boot:\n image: (Mandatory)\n ip_address: (Mandatory)\n subnet_mask: (Mandatory)\n gateway: (Mandatory)\n tftp_server: (Mandatory)\n Return:\n None\n Raise:\n Exception\n ", + "doc": "Boot device using golden image or using tftp server\n Args:\n device: device object\n break_count: \n console_activity_pattern: \n console_breakboot_char: \n console_breakboot_telnet_break: Use telnet `send break` to interrupt device boot\n grub_activity_pattern: \n grub_breakboot_char: \n timeout: \n recovery_password: \n golden_image: \n kickstart: \n system: \n tftp_boot:\n image: (Mandatory)\n ip_address: (Mandatory)\n subnet_mask: (Mandatory)\n gateway: (Mandatory)\n tftp_server: (Mandatory)\n ether_port: (Optional) (Default to 0)\n Return:\n None\n Raise:\n Exception\n ", "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "device_recovery_boot", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4306" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4307" + } + }, + "device_rommon_boot": { + "iosxe": { + "doc": "Boot device using golden image or using tftp image\n Args:\n device: device object\n golden_image(`list`): Golden image to boot the device.\n tftp_boot:\n image(`list`): Image to boot.\n tftp_server('str'): tftp server information.\n\n Return:\n None\n Raise:\n Exception\n ", + "module_name": "rommon.utils", + "package": "genie.libs.sdk.apis", + "uid": "device_rommon_boot", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/utils.py#L7" } }, "device_tracking_attach_policy": { @@ -14224,7 +14350,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "diff_configuration", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1561" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1562" } }, "disable_aaa_authentication_login": { @@ -14251,7 +14377,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "disable_autostate_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5268" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5281" } }, "disable_bfd_on_isis_ipv6_address": { @@ -14467,7 +14593,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "disable_ip_routing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L457" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L426" } }, "disable_ipv6_address_dhcp": { @@ -14476,7 +14602,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "disable_ipv6_address_dhcp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3646" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3647" } }, "disable_ipv6_dhcp_server": { @@ -14485,7 +14611,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "disable_ipv6_dhcp_server", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3586" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3587" } }, "disable_ipv6_multicast_routing": { @@ -14494,7 +14620,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "disable_ipv6_multicast_routing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L704" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L673" } }, "disable_keepalive_on_interface": { @@ -14503,7 +14629,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "disable_keepalive_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L510" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L479" } }, "disable_login_password_reuse_interval": { @@ -14530,7 +14656,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "disable_switchport_trunk_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9293" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9306" } }, "disable_system_integrity": { @@ -14566,7 +14692,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "dynamic_diff_create_running_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1631" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1632" } }, "dynamic_diff_parameterized_running_config": { @@ -14575,7 +14701,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "dynamic_diff_parameterized_running_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1583" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1584" } }, "enable_aaa_authentication_login": { @@ -14867,7 +14993,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "enable_ip_routing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L382" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L351" } }, "enable_ipv6_address_dhcp": { @@ -14876,7 +15002,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "enable_ipv6_address_dhcp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3616" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3617" } }, "enable_ipv6_dhcp_server": { @@ -14885,7 +15011,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "enable_ipv6_dhcp_server", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2478" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2479" } }, "enable_ipv6_eigrp_router": { @@ -14903,7 +15029,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "enable_ipv6_multicast_routing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L678" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L647" } }, "enable_ipv6_unicast_routing": { @@ -14912,7 +15038,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "enable_ipv6_unicast_routing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L407" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L376" } }, "enable_keepalive_on_interface": { @@ -14921,7 +15047,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "enable_keepalive_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1149" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1118" } }, "enable_license_smart_authorization_return": { @@ -14975,7 +15101,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "enable_routing_debug_static_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L352" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L321" } }, "enable_service_internal": { @@ -14993,7 +15119,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "enable_switchport_protected_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9595" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9608" } }, "enable_switchport_trunk_on_interface": { @@ -15002,7 +15128,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "enable_switchport_trunk_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5244" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5257" } }, "enable_system_integrity": { @@ -15029,7 +15155,7 @@ "module_name": "apphosting.configure", "package": "genie.libs.sdk.apis", "uid": "enable_usb_ssd_verify_exists", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py#L385" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py#L386" } }, "erase_startup_config": { @@ -15047,7 +15173,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "escape_ansi", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L174" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L175" } }, "exclude_ip_dhcp": { @@ -15122,6 +15248,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/execute.py#L1176" } }, + "execute_archive_download": { + "com": { + "doc": "\n Downloads image via tftp/http/sftp on AP and reloads the device.\n Args:\n device(object): device object\n image_path(str): path of the image in server\n max_timeout(int): the maximum timeout where device can perform the download\n username(str): Username of server where image resides\n password(str): Password of server where image resides\n reload(bool): Device reload if True else no reload\n Returns:\n bool: True/False\n ", + "module_name": "cheetah.ap.execute", + "package": "genie.libs.sdk.apis", + "uid": "execute_archive_download", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py#L41" + } + }, "execute_archive_tar": { "iosxe": { "doc": " Execute archive tar\n Example: archive tar /create usb0:usb_files.tar bootflash:/tracelogs\n archive tar /xtract usb0:usb_files.tar usb0:new-tar-files\n Args:\n device ('obj'): Device object\n dest_filesystem ('str'): specifying filesystems such as bootflash:,usb:, tftp:\n tar_filename('str'): tar filename\n operation_type('str'): Option can be xtract, table, create\n src_filesystem ('str'): specifying filesystems such as bootflash:,usb:, tftp:\n src_filepath ('str',optional): specifying files path which need to be archived,Default is None\n dest_filepath ('str',optional): specifying destination path of tar file,Default is None\n timeout ('int',optional): Max time for completion of cli execution,Default is 120 seconds\n Returns:\n output\n Raises:\n SubCommandFailure\n ", @@ -15137,7 +15272,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "execute_by_jinja2", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L52" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L53" } }, "execute_card_OIR": { @@ -15676,7 +15811,7 @@ "module_name": "cheetah.ap.execute", "package": "genie.libs.sdk.apis", "uid": "execute_erase_ap", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py#L22" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py#L26" } }, "execute_event_manager_run_with_reload": { @@ -15991,7 +16126,7 @@ "module_name": "cheetah.ap.execute", "package": "genie.libs.sdk.apis", "uid": "execute_prime_ap", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py#L12" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py#L16" } }, "execute_redundancy_reload": { @@ -16463,7 +16598,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "extract_tar_gz", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L14" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L15" } }, "force_unconfigure_static_nat_route_map_rule": { @@ -16515,7 +16650,7 @@ "module_name": "openssl.generate", "package": "genie.libs.sdk.apis", "uid": "generate_ca_certificate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py#L71" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py#L83" } }, "generate_crypto_key": { @@ -16538,16 +16673,25 @@ }, "generate_ecc_ssl_key": { "linux": { - "doc": "\n Args:\n device(`obj`): Device to configure the SSL key on\n private_key_name(`str`): Name of the private key file\n elliptic_curve(`str`): Specify which elliptic curve to employ\n password(`str`, Optional): Password to encrypt the private key, default None\n aes_key_size(`int`, Optional): AES keysize used to encrypt password if provided. Default 256\n path_to_file(`str`, Optional): Absolute path to the directory where the file should be saved, default None\n Raises:\n SubCommandFailure\n ", + "doc": "\n Args:\n device(`obj`): Device to configure the SSL key on\n private_key_name(`str`): Name of the private key file\n elliptic_curve(`str`): Specify which elliptic curve to employ\n password(`str`, Optional): Password to encrypt the private key, default None\n aes('bool', Optional): Use AES encryption if True, else use 3DES. default to True.\n aes_key_size(`int`, Optional): AES keysize used to encrypt password if provided. Default 256\n path_to_file(`str`, Optional): Absolute path to the directory where the file should be saved, default None\n Raises:\n SubCommandFailure\n ", "module_name": "openssl.generate", "package": "genie.libs.sdk.apis", "uid": "generate_ecc_ssl_key", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py#L40" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py#L46" + } + }, + "generate_pkcs12": { + "linux": { + "doc": "\n Args:\n device('obj'): Device to configure the SSL key on.\n device_key_file(`str`): Filename or absolute path to a file containing a device key for the certificate.\n device_cert_file(`str`): Filename or absolute path to a file containing a device certificate.\n root_cert_file(`str`): Filename or absolute path to a root certificate.\n output_pkcs12_file(`str`): Filename or absolute path to a output pkcs12 file.\n passin_password(`str`, Optional): The password for the input private key file, if applicable. Default None.\n passout_password(`str`, Optional): The password for the output private key file, if applicable. Default None.\n Raises:\n SubCommandFailure\n ", + "module_name": "openssl.generate", + "package": "genie.libs.sdk.apis", + "uid": "generate_pkcs12", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py#L166" } }, "generate_rsa_ssl_key": { "linux": { - "doc": "\n Args:\n device('obj'): Device to configure the SSL key on\n private_key_name(`str`): Name of the certificate file\n key_size(`int`, Optional): RSA key bit length, default 2048\n password(`str`, Optional): Password to encrypt the device key, default None\n aes_key_size(`int`, Optional): AES keysize used to encrypt password if provided. Default 256\n path_to_file(`str`, Optional): Absolute path to the directory where the file should be saved, default None\n Raises:\n SubCommandFailure\n ", + "doc": "\n Args:\n device('obj'): Device to configure the SSL key on\n private_key_name(`str`): Name of the certificate file\n key_size(`int`, Optional): RSA key bit length, default 2048\n password(`str`, Optional): Password to encrypt the device key, default None\n aes('bool', Optional): Use AES encryption if True, else use 3DES. default to True.\n aes_key_size(`int`, Optional): AES keysize used to encrypt password if provided. Default 256\n path_to_file(`str`, Optional): Absolute path to the directory where the file should be saved, default None\n Raises:\n SubCommandFailure\n ", "module_name": "openssl.generate", "package": "genie.libs.sdk.apis", "uid": "generate_rsa_ssl_key", @@ -16560,7 +16704,7 @@ "module_name": "openssl.generate", "package": "genie.libs.sdk.apis", "uid": "generate_ssl_certificate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py#L105" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py#L117" } }, "get_RIPng_routes": { @@ -16644,7 +16788,7 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_ap_ip", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L111" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L114" } } }, @@ -17102,7 +17246,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_bool", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4088" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4089" } }, "get_boot_variables": { @@ -17413,7 +17557,7 @@ "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_config_commands_from_running_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L152" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L156" } }, "get_config_dict": { @@ -17422,7 +17566,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_config_dict", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L229" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L230" } }, "get_config_from_file": { @@ -17506,7 +17650,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_connected_alias", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3685" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3686" } }, "get_connection": { @@ -17515,7 +17659,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_connection", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3013" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3014" } }, "get_controller_name": { @@ -17578,7 +17722,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_delta_time_from_outputs", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L573" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L574" } }, "get_device_classifier_profile_names": { @@ -17596,7 +17740,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_device_connections_info", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3385" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3386" } }, "get_device_tracking_counters_vlan_faults": { @@ -17659,7 +17803,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_devices", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3060" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3061" } }, "get_devices_simple": { @@ -17668,7 +17812,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_devices_simple", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3210" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3211" } }, "get_dhcpv4_binding_address_list": { @@ -17740,7 +17884,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_dict_items", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1817" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1818" } }, "get_diffs_platform": { @@ -17765,7 +17909,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_dir_byte_total", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L207" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L208" } }, "get_dscp_cos_qos_queue_stats": { @@ -17784,17 +17928,17 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_fabric_ap_state", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L57" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L60" } } }, "get_file_contents": { "linux": { - "doc": "\n Args:\n device(`obj`)\n filename(`str`): Absolute path to the file\n Returns:\n File contents as a string\n ", + "doc": "\n Args:\n device(`obj`)\n filename(`str`): Absolute path to the file\n remove_cr('str'): Remove carriage return (\r) from the file contents.\n Returns:\n File contents as a string\n ", "module_name": "get", "package": "genie.libs.sdk.apis", "uid": "get_file_contents", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/get.py#L8" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/get.py#L9" } }, "get_file_size": { @@ -17840,7 +17984,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_file_size_from_server", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1209" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1210" } }, "get_file_timestamp": { @@ -18092,7 +18236,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_interface_attr_from_yaml", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3340" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3341" } }, "get_interface_capabilities_multiple_media_types": { @@ -18155,7 +18299,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_interface_from_yaml", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3234" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3235" } }, "get_interface_ifindex": { @@ -18203,7 +18347,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_interface_interfaces", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2012" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2013" }, "iosxe": { "doc": " Get interface and device\n\n Args:\n device ('obj'): Device object\n link_name ('str'): link name\n opposite ('bool'): find opposite device interface\n num ('int'): num of interface to return\n\n Returns:\n topology dictionary\n\n Raises:\n None\n ", @@ -18628,7 +18772,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_interface_type_from_yaml", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3299" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3300" } }, "get_interface_with_mask": { @@ -18664,7 +18808,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_interfaces", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1950" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1951" } }, "get_interfaces_description": { @@ -18780,6 +18924,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/get.py#L59" } }, + "get_ip_route_for_ipv4": { + "linux": { + "doc": "\n Args:\n device(`obj`): Device object \n ipv4(`IPv4Address`): the ip that we want to check the routing table for \n Returns:\n ip_route('str'): the string format for ip route\n ", + "module_name": "get", + "package": "genie.libs.sdk.apis", + "uid": "get_ip_route_for_ipv4", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/get.py#L28" + } + }, "get_ip_theft_syslogs": { "iosxe": { "doc": "Gets IP Theft syslog\n\n Args:\n device (obj): device object\n Returns:\n Dictionary\n None\n Raises:\n None\n ", @@ -19089,7 +19242,7 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_lisp_session_state", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L79" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L82" } } }, @@ -19099,7 +19252,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_list_items", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1768" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1769" } }, "get_list_length": { @@ -19108,7 +19261,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_list_length", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4128" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4129" } }, "get_lldp_neighbors_info": { @@ -19147,7 +19300,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_local_ip", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4061" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4062" } }, "get_log_message_time": { @@ -19174,7 +19327,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_longest_server_address", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1368" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1369" } }, "get_mac_aging_timer": { @@ -19211,7 +19364,7 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_matching_line_platform_software", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L176" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L179" } } }, @@ -19222,7 +19375,7 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_matching_line_processes_platform", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L153" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L156" } } }, @@ -19253,7 +19406,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_md5_hash_of_file", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L104" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L105" }, "nxos": { "doc": " Return the MD5 hash of a given file.\n\n Args:\n device (obj): Device to execute on\n file (str): File to calculate the MD5 on\n timeout (int, optional): Max time in seconds allowed for calculation.\n Defaults to 60.\n\n Returns:\n MD5 hash (str), or None if something went wrong\n ", @@ -19376,6 +19529,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/nxos/utils.py#L207" } }, + "get_module": { + "iosxe": { + "doc": "\n Get componenets' firmware version from show module output\n Args:\n device (`obj`): Device object\n Returns:\n Dictionary: List of components' firmware dict\n example: [\n {: },\n {: }\n ]\n Raises:\n None\n ", + "module_name": "firmware_version.get", + "package": "genie.libs.sdk.apis", + "uid": "get_module", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/firmware_version/get.py#L123" + } + }, "get_module_info": { "iosxr": { "doc": " Get a module's information\n\n Args:\n device (`obj`): Device object\n module (`str`): Module name\n key (`str`): Key name\n Returns:\n field (`str`): Field value\n ", @@ -19472,7 +19634,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_neighbor_address", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L316" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L317" } }, "get_neighbor_count": { @@ -20304,7 +20466,7 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_platform_software_dict", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L221" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L224" } } }, @@ -20402,7 +20564,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_power_cyclers", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2039" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2040" } }, "get_processes_five_seconds_cpu_usage": { @@ -20421,7 +20583,7 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_processes_platform_dict", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L199" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L202" } } }, @@ -20459,7 +20621,7 @@ "module_name": "platform.get", "package": "genie.libs.sdk.apis", "uid": "get_rloc_ip", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L132" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py#L135" } } }, @@ -20800,7 +20962,7 @@ "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_running_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L115" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L119" } }, "get_running_config_all": { @@ -20809,7 +20971,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_running_config_all", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3396" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3397" } }, "get_running_config_dict": { @@ -20828,7 +20990,7 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/ios/running_config/get.py#L37" }, "iosxe": { - "doc": " Get show running-config output\n\n Args:\n device (`obj`): Device object\n option (`str`): option command\n Returns:\n config_dict (`dict`): dict of show run output\n ", + "doc": " Get show running-config output\n\n Args:\n device (`obj`): Device object\n option (`str`): option command\n output (`str`): output of show running-config\n Returns:\n config_dict (`dict`): dict of show run output\n ", "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_running_config_dict", @@ -20869,7 +21031,7 @@ "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_running_config_hostname", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L60" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L64" }, "iosxr": { "doc": " Get device hostname\n\n Args:\n device (`obj`): Device object\n Returns:\n hostname (`str`): Device hostname\n ", @@ -20892,7 +21054,7 @@ "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_running_config_section", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L135" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L139" } }, "get_running_config_section_attr44": { @@ -20917,7 +21079,7 @@ "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_running_config_section_dict", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L83" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L87" } }, "get_running_image": { @@ -21134,7 +21296,7 @@ "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_show_derived_interface_dict", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L245" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L249" } }, "get_show_output_exclude": { @@ -21241,7 +21403,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_single_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4015" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4016" } }, "get_slice_id_of_interface": { @@ -21275,7 +21437,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_cli_dict", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L159" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L160" } }, "get_snmp_dict": { @@ -21284,7 +21446,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_dict", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L105" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L106" } }, "get_snmp_id_slot_map": { @@ -21293,7 +21455,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_id_slot_map", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L49" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L50" } }, "get_snmp_information": { @@ -21311,7 +21473,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_snmpget", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L46" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L47" } }, "get_snmp_snmpgetnext": { @@ -21320,19 +21482,19 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_snmpgetnext", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L71" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L72" } }, "get_snmp_snmpwalk": { "iosxe": { - "doc": " Get snmpwalk output from SNMP device\n\n Args:\n device (`obj`): SNMP device\n community (`str`): Community name\n ip_address (`str`): IP address\n oid (`str`): Oid code\n version (`str`): SNMP version\n option (`str`): Optional command\n Returns:\n out (`str`): Executed output of SNMP command\n Raises:\n None\n ", + "doc": " Get snmpwalk output from SNMP device\n\n Args:\n device (`obj`): SNMP device\n community (`str`): Community name\n ip_address (`str`): IP address\n oid (`str`): Oid code\n version (`str`): SNMP version\n option (`str`): Optional command\n timeout (`int`): Optional timeout value. Default is 60 seconds.\n Returns:\n out (`str`): Executed output of SNMP command\n Raises:\n None\n ", "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_snmpwalk", "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py#L13" }, "linux": { - "doc": " Get snmpwalk output from SNMP device\n Args:\n device (`obj`): SNMP device\n community (`str`): Community name\n ip_address (`str`): IP address\n oid (`str`): Oid code\n version (`str`, optional): SNMP version. Default is \"2c\"\n option (`str`): Optional command. Default is None\n Returns:\n out (`str`): Executed output of SNMP command\n Raises:\n None\n ", + "doc": " Get snmpwalk output from SNMP device\n Args:\n device (`obj`): SNMP device\n community (`str`): Community name\n ip_address (`str`): IP address\n oid (`str`): Oid code\n version (`str`, optional): SNMP version. Default is \"2c\"\n option (`str`): Optional command. Default is None\n timeout (`int`): Optional timeout value. Default is 60 seconds.\n Returns:\n out (`str`): Executed output of SNMP command\n Raises:\n None\n ", "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_snmpwalk", @@ -21345,7 +21507,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_snmpwalk_sysname", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L182" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L183" } }, "get_snmp_snmpwalk_v3": { @@ -21354,7 +21516,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_snmpwalk_v3", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L96" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L97" } }, "get_snmp_snmpwalk_version3": { @@ -21363,7 +21525,7 @@ "module_name": "snmp.get", "package": "genie.libs.sdk.apis", "uid": "get_snmp_snmpwalk_version3", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L132" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py#L133" } }, "get_software_version": { @@ -21465,7 +21627,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_structure_output", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3755" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3756" } }, "get_supported_elliptic_curves": { @@ -21663,7 +21825,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_testcase_name", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4106" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4107" } }, "get_the_number_of_telemetry_report_in_system": { @@ -21681,7 +21843,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_time_source_from_output", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L535" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L536" } }, "get_tolerance_min_max": { @@ -21690,7 +21852,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_tolerance_min_max", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2256" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2257" } }, "get_total_asics_cores": { @@ -21817,7 +21979,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_unconfig_line", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L205" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L206" } }, "get_unused_channel": { @@ -21846,7 +22008,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "get_username_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1518" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1519" } }, "get_valid_config_from_running_config": { @@ -21862,7 +22024,7 @@ "module_name": "running_config.get", "package": "genie.libs.sdk.apis", "uid": "get_valid_config_from_running_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L188" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py#L192" }, "iosxr": { "doc": " Returns a configuration from 'show running-config | begin version'.\n The API will exclude any configuration and sub configuration that\n matches regex from exclude. The returned string can be used to\n configure a device.\n\n Args:\n device ('obj'): Device to run on\n exclude ('str'): Regex of config to exclude\n begin ('str'): Begin command for show run\n\n Returns:\n String of configuration\n ", @@ -21879,6 +22041,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/nxos/running_config/get.py#L38" } }, + "get_valid_ipv4_address": { + "linux": { + "doc": " Validate and convert the input IP address into an IPv4Interface instance.\n \n Args:\n device (`obj`) : Device object (local device)\n ip_address (`str` or IPv4Interface): IP address to be validated and converted\n Raise:\n ipaddress.AddressValueError: If IP address cannot be converted to IPv4Interface\n Returns:\n result (`IPv4Address`): The IPv4Address for ip\n ", + "module_name": "utils", + "package": "genie.libs.sdk.apis", + "uid": "get_valid_ipv4_address", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L210" + } + }, "get_vlan_info": { "ios": { "doc": " Api method to call parser and return device vlan information\n Args:\n device ('obj'): Device object\n Returns:\n Dictionary: Vlan information\n ", @@ -22007,7 +22178,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "has_configuration", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L334" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L335" } }, "health_core": { @@ -22115,7 +22286,34 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "hw_module_beacon_RP_active_standby", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4504" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4519" + } + }, + "hw_module_beacon_rp_active_standby_status": { + "iosxe": { + "doc": " ON/OFF beacon supervisor\n Args:\n device ('obj'): Device object\n supervisor('str'): active/standby\n\n ", + "module_name": "platform.configure", + "package": "genie.libs.sdk.apis", + "uid": "hw_module_beacon_rp_active_standby_status", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4534" + } + }, + "hw_module_beacon_rp_status": { + "iosxe": { + "doc": " ON/OFF beacon slot\n Args:\n device ('obj'): Device object\n rp('str'): R0 or R1\n\n ", + "module_name": "platform.configure", + "package": "genie.libs.sdk.apis", + "uid": "hw_module_beacon_rp_status", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L469" + } + }, + "hw_module_beacon_rp_toggle": { + "iosxe": { + "doc": " ON/OFF beacon slot\n Args:\n device ('obj'): Device object\n rp('str'): R0 or R1\n operation('str'): ON/OFF\n\n ", + "module_name": "platform.configure", + "package": "genie.libs.sdk.apis", + "uid": "hw_module_beacon_rp_toggle", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L454" } }, "hw_module_beacon_slot_on_off": { @@ -22124,7 +22322,25 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "hw_module_beacon_slot_on_off", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L420" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L424" + } + }, + "hw_module_beacon_slot_status": { + "iosxe": { + "doc": " ON/OFF beacon slot\n Args:\n device ('obj'): Device object\n slot('int'): Switch number\n\n ", + "module_name": "platform.configure", + "package": "genie.libs.sdk.apis", + "uid": "hw_module_beacon_slot_status", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L439" + } + }, + "hw_module_filesystem_security_lock": { + "iosxe": { + "doc": " Enable/Disable Security-lock on filesystem bootflash/harddisk\n Args:\n device ('obj'): Device object\n filesystem('str'): Filesystem (bootflash/harddisk)\n operation('str'): Enable/Disable\n\n ", + "module_name": "hw_module.execute", + "package": "genie.libs.sdk.apis", + "uid": "hw_module_filesystem_security_lock", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/hw_module/execute.py#L58" } }, "hw_module_sub_slot_reload": { @@ -22187,7 +22403,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "int_to_mask", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L351" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L352" } }, "interface_counter_check": { @@ -22807,7 +23023,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "load_dict_from_json_file", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2811" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2812" } }, "load_jinja": { @@ -22816,7 +23032,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "load_jinja", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L488" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L489" } }, "load_jinja_template": { @@ -22834,7 +23050,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "mask_to_int", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L366" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L367" } }, "modify_filename": { @@ -22843,7 +23059,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "modify_filename", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1275" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1276" } }, "modify_pbr_route_map": { @@ -22870,7 +23086,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "netmask_to_bits", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L823" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L824" } }, "number_to_string": { @@ -22879,7 +23095,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "number_to_string", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1718" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1719" } }, "nxapi_method_nxapi_cli": { @@ -23042,7 +23258,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "power_supply_on_off", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2077" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2091" } }, "prepare_issu": { @@ -23057,10 +23273,10 @@ "print_header": { "com": { "doc": null, - "module_name": "api_unittest_generator", + "module_name": "api_unittest_generator1", "package": "genie.libs.sdk.apis", "uid": "print_header", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/api_unittest_generator.py#L41" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/api_unittest_generator1.py#L41" } }, "question_mark": { @@ -23069,7 +23285,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "question_mark", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L120" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L121" } }, "question_mark_retrieve": { @@ -23078,7 +23294,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "question_mark_retrieve", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L139" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L140" } }, "quick_configure_by_jinja2": { @@ -23105,7 +23321,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "reconnect_device", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L778" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L779" } }, "reconnect_device_with_new_credentials": { @@ -23114,7 +23330,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "reconnect_device_with_new_credentials", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L712" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L713" } }, "redistribute_bgp_metric_route_map_under_ospf": { @@ -23231,7 +23447,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "remove_channel_group_from_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2650" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2651" } }, "remove_default_ipv4_sgacl": { @@ -23348,7 +23564,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "remove_interface_ip", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2320" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2321" } }, "remove_interface_negotiation": { @@ -23576,16 +23792,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "remove_port_channel_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2682" - } - }, - "remove_routing_ip_route": { - "iosxe": { - "doc": " Remove ip route on device\n\n Args:\n device ('obj'): Device obj\n ip_address ('str'): ip address for interface\n mask (str): mask the ip address\n interface ('str'): interface name to configure\n dest_add('str'): destination address to configure\n\n Returns:\n None\n\n Raises:\n SubCommandFailure\n ", - "module_name": "routing.configure", - "package": "genie.libs.sdk.apis", - "uid": "remove_routing_ip_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L70" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2683" } }, "remove_running_config": { @@ -23619,7 +23826,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "remove_static_route_all", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1132" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1101" } }, "remove_subscriber": { @@ -23662,7 +23869,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "remove_virtual_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1675" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1676" } }, "rename_dir_file_system": { @@ -23680,7 +23887,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "repeat_command_save_output", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2176" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2177" } }, "request_chassis_routing_engine_master_switch": { @@ -23716,7 +23923,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "request_platform_software_package_clean", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1819" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1871" } }, "request_platform_software_package_expand": { @@ -23809,7 +24016,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "restore_running_config_file", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3564" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3578" } }, "revert_vm_snapshot": { @@ -23836,7 +24043,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "sanitize", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4415" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4422" } }, "save_dict_to_json_file": { @@ -23845,7 +24052,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "save_dict_to_json_file", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2768" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2769" } }, "save_info_to_file": { @@ -23854,7 +24061,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "save_info_to_file", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1658" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1659" } }, "save_running_config": { @@ -23925,7 +24132,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "scp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L126" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py#L127" }, "nxos": { "doc": " copy files from local device to remote device via scp\n Args:\n device (`obj`) : Device object (local device)\n local_path (`str`): path with file on local device\n remote_device (`str`): remote device name\n remote_path (`str`): path with/without file on remote device\n remote_user (`str`): use given username to scp\n Default to None\n remote_pass (`str`): use given password to scp\n Default to None\n remote_via (`str`) : specify connection to get ip\n Default to None\n vrf (`str`): use vrf where scp find route to remote device\n Default to None\n return_filename (`bool`): if True, will return list of copied files\n Returns:\n result (`bool` or `tuple`): True if scp successfully done \n if return_filename is True, return list of copied filename\n\n ", @@ -23957,7 +24164,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "send_email", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2223" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2224" } }, "set_clock": { @@ -24029,7 +24236,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "set_system_mtu", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L483" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L452" } }, "set_traffic_transmit_rate": { @@ -24090,7 +24297,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "shutdown_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1408" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1409" } }, "shutdown_ipv6_eigrp_instance": { @@ -24117,7 +24324,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "slugify", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2155" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2156" } }, "snmp_server_engine_id_local": { @@ -24135,7 +24342,7 @@ "module_name": "socat.relay", "package": "genie.libs.sdk.apis", "uid": "socat_relay", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py#L9" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py#L11" } }, "source_configured_template": { @@ -24153,7 +24360,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "stack_ports_enable_disable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L435" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L486" } }, "start_monitor_capture": { @@ -24208,6 +24415,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/platform/utils.py#L198" } }, + "start_socat_relay": { + "linux": { + "doc": " Setup UDP/TCP relay using 'socat' command.\n\n Args:\n device (obj): Device object (optional)\n remote_ip (str): remote IP address\n remote_port (str): remote port\n protocol (str): portocol (default: TCP4)\n\n Returns:\n proxy_port (int): Proxy port number or False if not able to setup relay\n socat_pid (int): Process ID for the socat process\n ", + "module_name": "socat.relay", + "package": "genie.libs.sdk.apis", + "uid": "start_socat_relay", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py#L27" + } + }, "start_trex_process": { "linux": { "doc": " Starts a trex process on the device\n Args:\n location (str): folder location of where the trex executable is at\n Raise:\n FileNotFoundError\n Returns:\n Success (bool): Whether or not the operation was successful\n ", @@ -24269,13 +24485,22 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/virl/std/utils.py#L45" } }, + "stop_socat_relay": { + "linux": { + "doc": " Stop the relay process by killing the PID\n\n Args:\n socat_pid (int): Process ID for socat process\n ", + "module_name": "socat.relay", + "package": "genie.libs.sdk.apis", + "uid": "stop_socat_relay", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py#L75" + } + }, "string_to_number": { "com": { "doc": " Converts from number(string) to number(integer)\n Args:\n word (`str`): number (string)\n Raise:\n Exception\n Returns:\n ret_num ('int|float'): number (integer|float)\n\n Example:\n\n >>> dev.api.string_to_number('1')\n 1\n\n >>> dev.api.string_to_number('1.1')\n 1.1\n\n ", "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "string_to_number", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1688" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1689" } }, "switch_vm_power": { @@ -24293,7 +24518,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "tabber", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L83" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L84" } }, "terminal_no_monitor": { @@ -24311,7 +24536,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "tftp_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1433" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L1434" } }, "time_to_int": { @@ -24320,7 +24545,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "time_to_int", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L179" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L180" } }, "tokens": [ @@ -24439,7 +24664,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "tunnel_range_shut_unshut", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5607" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5620" } }, "unconfgiure_port_channel_min_link": { @@ -24448,7 +24673,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfgiure_port_channel_min_link", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5867" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5880" } }, "unconfig_access_session_accnt_attr_filter_spec_include_list": { @@ -24475,7 +24700,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfig_banner", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4252" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4267" } }, "unconfig_cns_agent_password": { @@ -24484,7 +24709,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfig_cns_agent_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4466" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4481" } }, "unconfig_device_tracking_policy": { @@ -24502,7 +24727,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfig_diagnostic_monitor_threshold", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8098" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8111" } }, "unconfig_disable_ipv6_routing": { @@ -24601,7 +24826,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfig_interface_ospfv3", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3675" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3676" } }, "unconfig_interface_ospfv3_cost": { @@ -24610,7 +24835,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfig_interface_ospfv3_cost", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3713" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3714" } }, "unconfig_interface_ospfv3_flood_reduction": { @@ -24637,7 +24862,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfig_interface_prpchannel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9521" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9534" } }, "unconfig_interface_ripng": { @@ -24655,7 +24880,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfig_ip_domain_lookup", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8444" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8457" } }, "unconfig_ip_multicast_routing_vrf_distributed": { @@ -25051,7 +25276,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_absolute_time_range", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5054" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5111" } }, "unconfigure_access_map_match_ip_address_action_forward": { @@ -25191,7 +25416,7 @@ }, "unconfigure_app_hosting_appid": { "iosxe": { - "doc": " Unconfigure app-hosting appid\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "doc": " Unconfigure app-hosting appid\n Args:\n device ('obj'): device to use\n appid ('str'): app-hosting appid\n Returns:\n None\n Raises:\n SubCommandFailure\n ", "module_name": "apphosting.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_app_hosting_appid", @@ -25204,7 +25429,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_archive_logging", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L487" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L538" } }, "unconfigure_archive_maximum": { @@ -25213,7 +25438,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_archive_maximum", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2210" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2224" } }, "unconfigure_archive_path": { @@ -25222,7 +25447,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_archive_path", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2167" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2181" } }, "unconfigure_archive_rollback": { @@ -25231,7 +25456,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_archive_rollback", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2256" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2270" } }, "unconfigure_archive_time_period": { @@ -25240,7 +25465,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_archive_time_period", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2307" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2321" } }, "unconfigure_archive_write_memory": { @@ -25249,7 +25474,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_archive_write_memory", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2348" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2362" } }, "unconfigure_arp_access_list": { @@ -25411,7 +25636,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_bba_group", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L150" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L154" } }, "unconfigure_bfd_neighbor_on_interface": { @@ -25510,7 +25735,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_boot_manual_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4154" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4169" } }, "unconfigure_boot_system": { @@ -25519,7 +25744,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_boot_system", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1223" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1275" } }, "unconfigure_boot_system_switch_switchnumber": { @@ -25528,7 +25753,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_boot_system_switch_switchnumber", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3528" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3542" } }, "unconfigure_breakout_cli": { @@ -25548,7 +25773,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_bridge_domain", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4621" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4651" } }, "unconfigure_broadband_aaa": { @@ -25557,7 +25782,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_broadband_aaa", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L296" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L300" } }, "unconfigure_bulkstat_profile": { @@ -25566,7 +25791,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_bulkstat_profile", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L911" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L963" } }, "unconfigure_call_admission": { @@ -25575,7 +25800,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_call_admission", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L244" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L248" } }, "unconfigure_call_home": { @@ -25713,7 +25938,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_commands_from_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1764" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1816" } }, "unconfigure_common_criteria_policy": { @@ -25731,7 +25956,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_control_policies", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6105" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6118" } }, "unconfigure_controller_policy_service_export": { @@ -25830,7 +26055,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_crypto_map_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5158" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5171" } }, "unconfigure_crypto_pki_server": { @@ -25974,7 +26199,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_device_classifier", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L788" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L840" } }, "unconfigure_device_classifier_command": { @@ -25983,7 +26208,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_device_classifier_command", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3864" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3878" } }, "unconfigure_device_classifier_operator": { @@ -25992,7 +26217,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_device_classifier_operator", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4069" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4084" } }, "unconfigure_device_classifier_profile": { @@ -26001,7 +26226,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_device_classifier_profile", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4013" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4028" } }, "unconfigure_device_classifier_profile_command": { @@ -26010,7 +26235,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_device_classifier_profile_command", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3907" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3921" } }, "unconfigure_device_sensor_filter_list": { @@ -26127,7 +26352,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_diagnostic_monitor_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3218" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3232" } }, "unconfigure_diagnostic_monitor_syslog": { @@ -26136,7 +26361,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_diagnostic_monitor_syslog", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3846" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3860" } }, "unconfigure_diagnostic_schedule_switch": { @@ -26145,7 +26370,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_diagnostic_schedule_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3276" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3290" } }, "unconfigure_diagonistics_monitor_switch": { @@ -26154,7 +26379,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_diagonistics_monitor_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L362" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L366" } }, "unconfigure_disable_sci_dot1q_clear": { @@ -26334,7 +26559,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_eapol_dest_address_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3356" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3357" } }, "unconfigure_eapol_eth_type_interface": { @@ -26343,7 +26568,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_eapol_eth_type_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3416" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3417" } }, "unconfigure_eigrp_named_router": { @@ -26424,7 +26649,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_enable_secret_level", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4217" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4232" } }, "unconfigure_enable_secret_password": { @@ -26433,7 +26658,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_enable_secret_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3134" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3148" } }, "unconfigure_errdisable": { @@ -26460,7 +26685,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_eui_64_over_ipv6_enabled_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6767" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6780" } }, "unconfigure_event_manager_applet": { @@ -26469,7 +26694,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_event_manager_applet", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2922" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2936" } }, "unconfigure_evpn_default_gateway_advertise_global": { @@ -26712,7 +26937,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_global_source_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1691" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1743" } }, "unconfigure_global_stackwise_virtual": { @@ -26766,7 +26991,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_module_logging_onboard", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5107" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5164" } }, "unconfigure_hw_module_slot_logging_onboard_environment": { @@ -26775,7 +27000,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_module_slot_logging_onboard_environment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5194" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5251" } }, "unconfigure_hw_module_slot_logging_onboard_temperature": { @@ -26784,7 +27009,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_module_slot_logging_onboard_temperature", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5240" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5297" } }, "unconfigure_hw_module_slot_logging_onboard_voltage": { @@ -26793,7 +27018,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_module_slot_logging_onboard_voltage", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5148" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5205" } }, "unconfigure_hw_module_slot_shutdown": { @@ -26805,6 +27030,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/hw_module/configure.py#L12" } }, + "unconfigure_hw_module_switch_number_ecomode_led": { + "iosxe": { + "doc": " unconfigure_hw_module_switch_number_ecomode_led\n Args:\n device ('obj'): device to use\n switch_number ('str'): switch number\n Returns:\n None\n Raises:\n SubCommandFailure exception\n ", + "module_name": "platform.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_hw_module_switch_number_ecomode_led", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5579" + } + }, "unconfigure_hw_module_switch_number_usbflash": { "iosxe": { "doc": " unconfigure_hw_module_switch_num_usbflash\n Args:\n device ('obj'): device to use\n switch_number ('str'): switch number\n Returns:\n None\n Raises:\n SubCommandFailure exception\n ", @@ -26820,7 +27054,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_switch_logging_onboard", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1404" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1456" } }, "unconfigure_hw_switch_switch_logging_onboard_environment": { @@ -26829,7 +27063,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_switch_switch_logging_onboard_environment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L990" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1042" } }, "unconfigure_hw_switch_switch_logging_onboard_temperature": { @@ -26838,7 +27072,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_switch_switch_logging_onboard_temperature", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1028" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1080" } }, "unconfigure_hw_switch_switch_logging_onboard_voltage": { @@ -26847,7 +27081,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_hw_switch_switch_logging_onboard_voltage", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L951" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1003" } }, "unconfigure_icmp_ip_reachables": { @@ -26964,7 +27198,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_VirtualPortGroup", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1627" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1679" } }, "unconfigure_interface_access_session": { @@ -26973,7 +27207,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_access_session", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7259" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7272" } }, "unconfigure_interface_auth_vlan": { @@ -26982,7 +27216,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_auth_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6628" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6641" } }, "unconfigure_interface_auth_vlan_no_resp": { @@ -26991,7 +27225,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_auth_vlan_no_resp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6707" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6720" } }, "unconfigure_interface_authentication_violation": { @@ -27000,7 +27234,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_authentication_violation", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8401" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8414" } }, "unconfigure_interface_bandwidth": { @@ -27009,7 +27243,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_bandwidth", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8315" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8328" } }, "unconfigure_interface_channel_group_auto_lacp": { @@ -27018,7 +27252,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_channel_group_auto_lacp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5910" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5923" } }, "unconfigure_interface_datalink_flow_monitor": { @@ -27036,7 +27270,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_description", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1763" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1764" } }, "unconfigure_interface_dot1x_eap_profile": { @@ -27045,7 +27279,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_dot1x_eap_profile", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6525" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6538" } }, "unconfigure_interface_dot1x_max_reauth_req": { @@ -27054,7 +27288,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_dot1x_max_reauth_req", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6458" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6471" } }, "unconfigure_interface_dot1x_max_req": { @@ -27063,7 +27297,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_dot1x_max_req", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6369" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6382" } }, "unconfigure_interface_dot1x_timeout_txp": { @@ -27072,7 +27306,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_dot1x_timeout_txp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6302" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6315" } }, "unconfigure_interface_duplex_mode": { @@ -27081,7 +27315,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_duplex_mode", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8547" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8560" } }, "unconfigure_interface_eigrp_v6": { @@ -27099,7 +27333,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_flow_control", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7655" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7668" } }, "unconfigure_interface_for_dot1x": { @@ -27108,7 +27342,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_for_dot1x", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2163" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2164" } }, "unconfigure_interface_for_mab": { @@ -27117,7 +27351,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_for_mab", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2210" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2211" } }, "unconfigure_interface_inherit_disable": { @@ -27126,7 +27360,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_inherit_disable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6080" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6093" } }, "unconfigure_interface_ip_dhcp_relay_information_option_vpn_id": { @@ -27153,7 +27387,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_ip_nbar", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9459" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9472" } }, "unconfigure_interface_ip_tcp_adjust_mss": { @@ -27162,7 +27396,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_ip_tcp_adjust_mss", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7200" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7213" } }, "unconfigure_interface_ip_verify_source": { @@ -27171,7 +27405,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_ip_verify_source", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8055" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8068" } }, "unconfigure_interface_ip_verify_unicast": { @@ -27180,7 +27414,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_ip_verify_unicast", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6584" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6597" } }, "unconfigure_interface_ipv6_tcp_adjust_mss": { @@ -27189,7 +27423,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_ipv6_tcp_adjust_mss", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7240" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7253" } }, "unconfigure_interface_ipv6_verify_unicast": { @@ -27198,7 +27432,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_ipv6_verify_unicast", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6730" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6743" } }, "unconfigure_interface_l2protocol_tunnel": { @@ -27207,7 +27441,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_l2protocol_tunnel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8263" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8276" } }, "unconfigure_interface_lacp_fast_switchover": { @@ -27216,7 +27450,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_lacp_fast_switchover", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7465" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7478" } }, "unconfigure_interface_lacp_max_bundle": { @@ -27225,7 +27459,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_lacp_max_bundle", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7520" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7533" } }, "unconfigure_interface_logging_event": { @@ -27234,7 +27468,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_logging_event", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6979" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6992" } }, "unconfigure_interface_mac_address": { @@ -27243,7 +27477,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_mac_address", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3469" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3470" } }, "unconfigure_interface_macro_auto_port_sticky": { @@ -27252,7 +27486,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_macro_auto_port_sticky", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5977" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5990" } }, "unconfigure_interface_monitor_session": { @@ -27261,7 +27495,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_monitor_session", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1884" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1885" } }, "unconfigure_interface_network_policy": { @@ -27315,7 +27549,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_pvlan_host_assoc", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9074" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9087" } }, "unconfigure_interface_pvlan_mapping": { @@ -27324,7 +27558,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_pvlan_mapping", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9226" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9239" } }, "unconfigure_interface_pvlan_mode_with_submode": { @@ -27333,7 +27567,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_pvlan_mode_with_submode", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8902" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8915" } }, "unconfigure_interface_range_dhcp_channel_group_mode": { @@ -27351,7 +27585,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_reg_segment", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4136" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4137" } }, "unconfigure_interface_reg_segment_timer": { @@ -27360,7 +27594,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_reg_segment_timer", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4201" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4202" } }, "unconfigure_interface_service_policy": { @@ -27369,7 +27603,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_service_policy", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9024" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9037" } }, "unconfigure_interface_snmp_trap_mac_notification_change": { @@ -27378,7 +27612,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_snmp_trap_mac_notification_change", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7575" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7588" } }, "unconfigure_interface_span_cost": { @@ -27387,7 +27621,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_span_cost", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6481" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6494" } }, "unconfigure_interface_span_vlan_priority": { @@ -27396,7 +27630,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_span_vlan_priority", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6392" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6405" } }, "unconfigure_interface_speed": { @@ -27405,7 +27639,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_speed", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9619" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9632" } }, "unconfigure_interface_split_horizon_eigrp": { @@ -27423,7 +27657,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_storm_control_action", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3886" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3887" } }, "unconfigure_interface_storm_control_level": { @@ -27432,7 +27666,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_storm_control_level", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3827" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3828" } }, "unconfigure_interface_switchport_access_vlan": { @@ -27441,7 +27675,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_access_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1235" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L1236" } }, "unconfigure_interface_switchport_block_address": { @@ -27450,7 +27684,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_block_address", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6932" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6945" } }, "unconfigure_interface_switchport_dot1q_ethertype": { @@ -27459,7 +27693,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_dot1q_ethertype", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7097" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7110" } }, "unconfigure_interface_switchport_mode_access": { @@ -27468,7 +27702,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_mode_access", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5931" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5944" } }, "unconfigure_interface_switchport_port_security": { @@ -27477,7 +27711,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_port_security", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8120" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8133" } }, "unconfigure_interface_switchport_port_security_violation": { @@ -27486,7 +27720,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_port_security_violation", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6255" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6268" } }, "unconfigure_interface_switchport_pvlan_association": { @@ -27495,7 +27729,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_pvlan_association", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9051" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9064" } }, "unconfigure_interface_switchport_pvlan_mapping": { @@ -27504,7 +27738,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_pvlan_mapping", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9093" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9106" } }, "unconfigure_interface_switchport_trunk_allowed_vlan": { @@ -27513,7 +27747,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_switchport_trunk_allowed_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7940" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7953" } }, "unconfigure_interface_template": { @@ -27522,7 +27756,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3020" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3021" } }, "unconfigure_interface_template_sticky": { @@ -27531,7 +27765,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_template_sticky", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6031" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6044" } }, "unconfigure_interface_tunnel_key": { @@ -27567,7 +27801,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interface_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2495" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2509" } }, "unconfigure_interface_vlan_standby_ip": { @@ -27612,7 +27846,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_interfaces_on_port_channel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4652" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4657" } }, "unconfigure_ip_access_group_in_out": { @@ -27801,7 +28035,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_dlep", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7879" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7892" } }, "unconfigure_ip_domain_lookup": { @@ -27876,6 +28110,51 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/multicast/configure.py#L1472" } }, + "unconfigure_ip_igmp_querier_max_response_time": { + "iosxe": { + "doc": "\n Unconfigure ip igmp snooping querier max response time 25\n\n Args:\n device('obj'): Device object\n query_type('str'): max-response-time IGMP querier max response time (sec)\n query_time('int'): <1-500> IGMP querier query response time (sec)\n \n Returns:\n None\n\n Raises:\n SubCommandFailure\n ", + "module_name": "igmp_snooping.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_ip_igmp_querier_max_response_time", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py#L395" + } + }, + "unconfigure_ip_igmp_querier_query_interval": { + "iosxe": { + "doc": "\n Unconfigure ip igmp snooping querier query-interval 100\n\n Args:\n device('obj'): Device object\n query_type('str'): query-interval IGMP querier query interval (sec)\n query_interval('int'): <1-18000> IGMP querier query interval (sec)\n \n Returns:\n None\n\n Raises:\n SubCommandFailure\n ", + "module_name": "igmp_snooping.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_ip_igmp_querier_query_interval", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py#L373" + } + }, + "unconfigure_ip_igmp_querier_tcn_query_count": { + "iosxe": { + "doc": "\n Unconfigure ip igmp snooping querier tcn query count 10\n Args:\n device('obj'): Device object\n query_type('str'):tcn IGMP querier TCN related parameters\n action_type('str'): count IGMP querier TCN query count\n query_count('int'):<1-10> IGMP querier TCN query count\n \n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "igmp_snooping.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_ip_igmp_querier_tcn_query_count", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py#L417" + } + }, + "unconfigure_ip_igmp_querier_tcn_query_interval": { + "iosxe": { + "doc": "\n Unconfigure ip igmp snooping querier tcn query interval 255\n Args:\n device('obj'): Device object\n query_type('str'):tcn IGMP querier TCN related parameters\n action_type('str'): interval IGMP querier TCN query interval\n query_interval('int'):<1-500> IGMP querier TCN query count (sec)\n \n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "igmp_snooping.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_ip_igmp_querier_tcn_query_interval", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py#L438" + } + }, + "unconfigure_ip_igmp_querier_timer_expiry": { + "iosxe": { + "doc": "\n Unconfigure ip igmp snooping querier timer expiry 300\n Args:\n device('obj'): Device object\n query_time('int'):<1-500> IGMP querier timer expiry count (sec)\n \n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "igmp_snooping.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_ip_igmp_querier_timer_expiry", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py#L459" + } + }, "unconfigure_ip_igmp_snooping": { "iosxe": { "doc": "UnConfigure IGMP snooping \n Example : no ip igmp snooping \n\n Args:\n device('obj'): Device object\n \n Returns:\n None\n \n Raises:\n SubCommandFailure : Could not unconfigure ip igmp snooping\n \n ", @@ -27999,7 +28278,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_mtu", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3249" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3250" } }, "unconfigure_ip_multicast_routing": { @@ -28013,11 +28292,11 @@ }, "unconfigure_ip_multicast_routing_distributed": { "iosxe": { - "doc": "Unconfigure ip multicast routing on device\n Args:\n device (`obj`): Device object\n Returns:\n None\n ", - "module_name": "mcast.configure", + "doc": "Unconfigure IP multicast routing\n Args:\n device (`obj`): Device object\n no_spd (): Selective packet discard\n punt_limit (`str` or `int`): Punt limit. Acceptable values are:\n integer (packets per second)\n default\n disable\n Return:\n None\n Raise:\n SubCommandFailure: Failure while configuring\n ", + "module_name": "multicast.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_multicast_routing_distributed", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mcast/configure.py#L63" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/multicast/configure.py#L481" } }, "unconfigure_ip_multicast_vrf_routing": { @@ -28038,13 +28317,22 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dns/configure.py#L80" } }, + "unconfigure_ip_on_atm_interface": { + "iosxe": { + "doc": " Unconfigure IP on an atm interface\n Args:\n device (`obj`): Device object\n interface (`str`): Interface to get address\n vpi_vci ('str'): atm vpi/vci value\n vlan_id ('str', optional): sub-interface number, eg: interface ATM0/3/0.213 point-to-point\n ip_address (`str`, optional): IP addressed to be configured on interface, default value None\n mask (`str`, optional): Mask address to be used in configuration, default value None\n ipv6_address (`str`, optional): IPv6 address with subnet mask, default value None\n Raises:\n SubCommandFailure\n ", + "module_name": "interface.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_ip_on_atm_interface", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9751" + } + }, "unconfigure_ip_on_interface": { "iosxe": { "doc": " Unconfigure IP on an interface\n\n Args:\n device ('obj'): Device object\n interface ('str'): Interface to get address\n ip_address ('str', optional): IP addressed to be configured on interface. Default is None\n mask ('str', optional): Mask address to be used in configuration. Default is None\n ipv6_address ('str', optional): IPv6 address with subnet mask. Default is None\n eth_encap_type ('str', optional): Encapsulation type. Default is None\n eth_encap_val ('str', optional): Encapsulation value. Default is None\n sub_interface ('str', optional): Subinterface to be added to interface name. Default is None\n dhcpv4 ('bool', optional): configure for ipv4 dhcp. Default is False\n dhcp_hostname ('str', optional): Optionally configure dhcp hostname as well. Default is ''\n vrf ('str', optional): vrf for in the interface. Default is None\n link_local_address ('str', optional): Link local address. Default is None\n secondary ('bool', optional): configure as secondary ipv4 address. Default is False\n Returns:\n None\n Warning messages\n Raises:\n SubCommandFailure\n ", "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8470" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8483" } }, "unconfigure_ip_ospf_mtu_ignore": { @@ -28152,7 +28440,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_route_cache", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5465" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5478" } }, "unconfigure_ip_rsvp_bandwidth": { @@ -28170,7 +28458,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_scp_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4724" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4754" } }, "unconfigure_ip_scp_server_enable": { @@ -28179,7 +28467,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_scp_server_enable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5422" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5479" } }, "unconfigure_ip_scp_username": { @@ -28188,7 +28476,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_scp_username", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4692" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4722" } }, "unconfigure_ip_sftp_password": { @@ -28197,7 +28485,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_sftp_password", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4756" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4786" } }, "unconfigure_ip_sftp_username": { @@ -28206,7 +28494,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_sftp_username", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4659" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4689" } }, "unconfigure_ip_source_binding": { @@ -28215,7 +28503,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_source_binding", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4117" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4132" } }, "unconfigure_ip_ssh_source_interface": { @@ -28224,7 +28512,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_ssh_source_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5447" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5504" } }, "unconfigure_ip_ssh_version": { @@ -28233,7 +28521,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_ssh_version", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L927" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L931" } }, "unconfigure_ip_subnet_to_sgt_mapping_vrf": { @@ -28251,7 +28539,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ip_tftp_blocksize", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1446" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1498" } }, "unconfigure_ip_to_sgt_mapping_vrf": { @@ -28323,7 +28611,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv4_dhcp_relay_helper", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7024" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7037" } }, "unconfigure_ipv4_dhcp_relay_helper_vrf": { @@ -28332,7 +28620,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv4_dhcp_relay_helper_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5662" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5675" } }, "unconfigure_ipv4_object_group": { @@ -28391,11 +28679,11 @@ }, "unconfigure_ipv6_acl": { "iosxe": { - "doc": " Unconfigure IPv6 ACL\n\n Args:\n device (`obj`): Device object\n acl_name ('str'): access-list name to unconfigure\n Returns:\n None\n Raises:\n SubCommandFailure\n \n ", - "module_name": "acl.configure", + "doc": " Unconfigure IPv6 ACL\n\n Args:\n device (`obj`): Device object\n acl_name ('str'): access-list name\n\n Returns:\n None\n\n Raises:\n SubCommandFailure\n ", + "module_name": "ogacl.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_acl", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/acl/configure.py#L479" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/ogacl/configure.py#L372" } }, "unconfigure_ipv6_acl_ace": { @@ -28422,7 +28710,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_address_autoconfig", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8883" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8896" } }, "unconfigure_ipv6_address_config": { @@ -28431,7 +28719,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_address_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8844" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8857" } }, "unconfigure_ipv6_address_test": { @@ -28440,7 +28728,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_address_test", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8784" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8797" } }, "unconfigure_ipv6_destination_guard_policy": { @@ -28485,7 +28773,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_dhcp_relay", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7046" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7059" } }, "unconfigure_ipv6_dhcp_relay_destination_ipv6address": { @@ -28539,7 +28827,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_enable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4696" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4701" } }, "unconfigure_ipv6_flow_monitor": { @@ -28674,7 +28962,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_mtu", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5092" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5105" } }, "unconfigure_ipv6_multicast_routing": { @@ -28692,7 +28980,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_nd_dad_processing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6805" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6818" } }, "unconfigure_ipv6_nd_raguard_on_interface": { @@ -28719,7 +29007,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_nd_suppress_ra", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8748" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8761" } }, "unconfigure_ipv6_object_group_network": { @@ -28827,7 +29115,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_redirects", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8766" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8779" } }, "unconfigure_ipv6_route_nexthop_vrf": { @@ -28836,7 +29124,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_route_nexthop_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1065" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1034" } }, "unconfigure_ipv6_router_ospf": { @@ -28854,7 +29142,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_static_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L814" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L783" } }, "unconfigure_ipv6_subnet_to_sgt_mapping": { @@ -28890,7 +29178,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_ipv6_unicast_routing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L434" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L403" } }, "unconfigure_isakmp_key": { @@ -28998,7 +29286,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_key_config_key_password_encrypt", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3063" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3077" } }, "unconfigure_l2vpn_evpn": { @@ -29097,7 +29385,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_license_smart_reservation", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2707" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2721" } }, "unconfigure_license_smart_transport": { @@ -29133,7 +29421,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_line_vty", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3170" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3184" } }, "unconfigure_lisp_enhanced_forwarding": { @@ -29433,7 +29721,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_macro_auto_global_processing", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3649" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3663" } }, "unconfigure_macro_auto_global_processing_on_interface": { @@ -29442,7 +29730,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_macro_auto_global_processing_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3613" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3627" } }, "unconfigure_macro_auto_processing_on_interface": { @@ -29451,7 +29739,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_macro_auto_processing_on_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3790" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3804" } }, "unconfigure_macro_auto_sticky": { @@ -29460,7 +29748,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_macro_auto_sticky", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L740" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L791" } }, "unconfigure_management_netconf": { @@ -29469,7 +29757,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_management_netconf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L972" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L976" } }, "unconfigure_match_service_type_mdns_controller_service_list": { @@ -29496,7 +29784,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_mdix_auto", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4194" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4209" } }, "unconfigure_mdns_active_response_timer": { @@ -29535,6 +29823,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1747" } }, + "unconfigure_mdns_global_service_buffer": { + "iosxe": { + "doc": " unconfigure mDNS(Multicast Domain Name System) global service-buffer\n Args:\n device ('obj'): device to use\n controllername ('str'): controller name\n Returns:\n None\n Raises:\n SubCommandFailure: Failed unconfiguring mdns global service-buffer \n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_mdns_global_service_buffer", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1961" + } + }, "unconfigure_mdns_location_filter": { "iosxe": { "doc": " Unconfigures location filter details on vlan\n Args:\n device ('obj'): device to use\n location_filter ('str'): location filter name\n\n Returns:\n None\n Raises:\n SubCommandFailure\n ", @@ -29559,7 +29856,34 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_mdns_on_interface_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5220" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5233" + } + }, + "unconfigure_mdns_remote_cache_enable": { + "iosxe": { + "doc": " Disable mDNS(Multicast Domain Name System) remote cache\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure: Failed disabling mdns remote cache\n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_mdns_remote_cache_enable", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1831" + } + }, + "unconfigure_mdns_remote_cache_max_limit": { + "iosxe": { + "doc": " Unconfigure mDNS(Multicast Domain Name System) remote cache max limit\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure: Failed unconfiguring mdns remote cache max limit\n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_mdns_remote_cache_max_limit", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1874" + } + }, + "unconfigure_mdns_remote_purge_timer": { + "iosxe": { + "doc": " unconfigure mDNS(Multicast Domain Name System) remote cache purge timer\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure: Failed unconfiguring mdns remote purge timer \n ", + "module_name": "mdns.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_mdns_remote_purge_timer", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py#L1917" } }, "unconfigure_mdns_service_definition": { @@ -29748,7 +30072,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_monitor_erspan_source_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8357" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8370" } }, "unconfigure_mpls_ldp_graceful_restart": { @@ -29802,7 +30126,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_mtc", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L857" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L861" } }, "unconfigure_mtc_parameters": { @@ -29811,7 +30135,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_mtc_parameters", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L822" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L826" } }, "unconfigure_nat64_interface": { @@ -30000,7 +30324,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_netconf_yang_intelligent_sync", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L892" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L896" } }, "unconfigure_netconf_yang_polling": { @@ -30009,7 +30333,7 @@ "module_name": "management.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_netconf_yang_polling", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L767" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py#L771" } }, "unconfigure_network_policy_profile_number": { @@ -30207,7 +30531,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_periodic_time_range", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4988" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5045" } }, "unconfigure_pim_register_source": { @@ -30243,7 +30567,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_platform_qos_port_channel_aggregate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L195" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L199" } }, "unconfigure_platform_sudi_cmca3": { @@ -30300,6 +30624,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/policy_map/configure.py#L325" } }, + "unconfigure_policy_map_with_pps": { + "iosxe": { + "doc": " Unconfigures policy-map with police rate in pps\n Args:\n device ('obj'): device to use\n policy_name ('str'): name of the policy name\n class_map_name ('str'): class map name information\n police_rate ('int'): police rate details in pps\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "policy_map.configure", + "package": "genie.libs.sdk.apis", + "uid": "unconfigure_policy_map_with_pps", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/policy_map/configure.py#L963" + } + }, "unconfigure_policy_map_with_type_queue": { "iosxe": { "doc": " Unconfigures policy map with type queueing\n Args:\n device ('obj'): device to use\n policy_type ('str'): Configure Queueing policy type\n queue_name ('str') : queue name to configure\n \n Returns:\n None\n Raises:\n SubCommandFailure\n ", @@ -30315,7 +30648,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_port_channel_ip", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8641" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8654" } }, "unconfigure_port_channel_lacp_max_bundle": { @@ -30324,7 +30657,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_port_channel_lacp_max_bundle", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5406" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5419" } }, "unconfigure_port_channel_mode": { @@ -30342,7 +30675,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_port_channel_standalone_disable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4922" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4927" } }, "unconfigure_portchannel_dpi_algorithm": { @@ -30351,7 +30684,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_portchannel_dpi_algorithm", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8590" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8603" } }, "unconfigure_power_efficient_ethernet_auto": { @@ -30360,7 +30693,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_power_efficient_ethernet_auto", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7969" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7982" } }, "unconfigure_power_inline": { @@ -30369,7 +30702,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_power_inline", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5800" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5813" } }, "unconfigure_ppk_on_keyring": { @@ -30383,11 +30716,11 @@ }, "unconfigure_pppoe_enable_interface": { "iosxe": { - "doc": " Configure pppone enable group on interface\n Args:\n device (`obj`): Device object\n interface (`str`): Interface name\n name (`str`): pppoe/bba group name\n Returns:\n None\n\n Raises:\n SubCommandFailure\n ", + "doc": " Configure pppone enable group on interface\n Args:\n device (`obj`): Device object\n interface (`str`): Interface name\n name (`str`): pppoe/bba group name\n ppp_max_payload ('str', optional): no pppoe-client ppp-max-payload \n Returns:\n None\n\n Raises:\n SubCommandFailure\n ", "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_pppoe_enable_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4983" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4992" } }, "unconfigure_process_cpu_statistics_limit_entry_percentage_size": { @@ -30396,7 +30729,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_process_cpu_statistics_limit_entry_percentage_size", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3724" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3738" } }, "unconfigure_process_cpu_threshold_type_rising_interval": { @@ -30405,7 +30738,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_process_cpu_threshold_type_rising_interval", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3686" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3700" } }, "unconfigure_profile_on_tunnel_interface": { @@ -30414,7 +30747,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_profile_on_tunnel_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7674" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L7687" } }, "unconfigure_propagate_sgt": { @@ -30549,7 +30882,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_qfp_drop_threshold", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5386" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5443" } }, "unconfigure_qos_policy": { @@ -30657,7 +30990,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_rep_admin_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4790" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4820" } }, "unconfigure_rip": { @@ -30720,7 +31053,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_router_bgp", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2368" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2382" } }, "unconfigure_router_bgp_maximum_paths": { @@ -30756,7 +31089,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_router_ospf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2423" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2437" } }, "unconfigure_routing_ip_route_vrf": { @@ -30765,7 +31098,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_routing_ip_route_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L587" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L556" } }, "unconfigure_routing_ipv6_route": { @@ -30774,7 +31107,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_routing_ipv6_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L886" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L855" } }, "unconfigure_routing_ipv6_route_vrf": { @@ -30783,7 +31116,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_routing_ipv6_route_vrf", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L969" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L938" } }, "unconfigure_routing_static_route": { @@ -30792,7 +31125,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_routing_static_route", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L236" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L205" } }, "unconfigure_routing_static_routev6": { @@ -30801,7 +31134,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_routing_static_routev6", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L140" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L109" } }, "unconfigure_sampler": { @@ -30837,7 +31170,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_service_compress_config", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4582" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4612" } }, "unconfigure_service_dhcp": { @@ -30855,7 +31188,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_service_instance", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9397" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9410" } }, "unconfigure_service_internal": { @@ -30864,7 +31197,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_service_internal", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2867" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2881" } }, "unconfigure_service_password_encryption": { @@ -30882,7 +31215,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_service_performance", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3026" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3040" } }, "unconfigure_service_policy": { @@ -30927,7 +31260,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_service_timestamps", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L598" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L649" } }, "unconfigure_service_type_mdns_service_definition": { @@ -30981,7 +31314,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_snmp_mib_bulkstat", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4372" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4387" } }, "unconfigure_snmp_server_contact": { @@ -30990,7 +31323,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_snmp_server_contact", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1323" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1375" } }, "unconfigure_snmp_server_enable_traps_power_ethernet_group": { @@ -31026,7 +31359,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_snmp_server_location", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1363" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1415" } }, "unconfigure_snmp_server_manager": { @@ -31071,7 +31404,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_software_auto_upgrade", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2040" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2054" } }, "unconfigure_source_template": { @@ -31089,7 +31422,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_source_template_global", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1669" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1721" } }, "unconfigure_span_monitor_session": { @@ -31098,7 +31431,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_span_monitor_session", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4870" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4875" } }, "unconfigure_spanning_tree": { @@ -31233,7 +31566,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_stack_mac_persistent_timer", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1110" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1079" } }, "unconfigure_stack_power_mode_redundant": { @@ -31242,16 +31575,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_stack_power_mode_redundant", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1933" - } - }, - "unconfigure_stack_power_stack": { - "iosxe": { - "doc": " Unconfigures stack-power stack\n Example : no stack-power stack test\n\n Args:\n device ('obj'): device to use\n powerstack_name ('str'): Power stack name - Up to 31 chars\n Returns:\n None\n Raises:\n SubCommandFailure\n ", - "module_name": "platform.configure", - "package": "genie.libs.sdk.apis", - "uid": "unconfigure_stack_power_stack", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1890" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1947" } }, "unconfigure_stack_power_switch": { @@ -31260,7 +31584,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_stack_power_switch", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4233" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4248" } }, "unconfigure_stack_power_switch_power_priority": { @@ -31269,7 +31593,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_stack_power_switch_power_priority", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3343" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3357" } }, "unconfigure_stackpower_stack": { @@ -31278,7 +31602,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_stackpower_stack", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4429" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L4444" } }, "unconfigure_stackpower_stack_switch_standalone": { @@ -31287,7 +31611,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_stackpower_stack_switch_standalone", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3429" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L3443" } }, "unconfigure_stackwise_virtual_dual_active_interfaces": { @@ -31422,7 +31746,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_subinterface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6125" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L6138" } }, "unconfigure_svi": { @@ -31431,16 +31755,16 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_svi", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3490" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3491" } }, "unconfigure_switch_provision": { "iosxe": { - "doc": " Unconfigures switch provisioning\n Example : no switch 3 provision\n\n Args:\n device ('obj'): device to use\n switch_number('int'): switch number (Range 1-16)\n\n Returns:\n None\n\n Raises: \n SubCommandFailure\n ", - "module_name": "offline_provisioning.configure", + "doc": " Unconfigure switch provision for switch\n Args:\n device ('obj'): Device object\n switch_number('int'): switch number\n Raises:\n SubCommandFailure\n ", + "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_switch_provision", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/offline_provisioning/configure.py#L33" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L572" } }, "unconfigure_switchport_nonegotiate": { @@ -31449,7 +31773,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_switchport_nonegotiate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4254" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4255" } }, "unconfigure_switchport_protected": { @@ -31458,7 +31782,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_switchport_protected", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8174" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8187" } }, "unconfigure_switchport_pvlan_trunk_allowed_vlan": { @@ -31467,7 +31791,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_switchport_pvlan_trunk_allowed_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9139" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9152" } }, "unconfigure_switchport_pvlan_trunk_native_vlan": { @@ -31476,7 +31800,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_switchport_pvlan_trunk_native_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9183" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9196" } }, "unconfigure_switchport_trunk_allowed_vlan": { @@ -31485,7 +31809,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_switchport_trunk_allowed_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9247" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9260" } }, "unconfigure_switchport_trunk_native_vlan": { @@ -31494,7 +31818,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_switchport_trunk_native_vlan", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9270" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L9283" } }, "unconfigure_switchport_trunk_pruning_vlan": { @@ -31521,7 +31845,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_system_disable_password_recovery_switch_all", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1274" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1326" } }, "unconfigure_system_ignore_startupconfig_switch_all": { @@ -31530,7 +31854,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_system_ignore_startupconfig_switch_all", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1165" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1217" } }, "unconfigure_system_mtu": { @@ -31539,7 +31863,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_system_mtu", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1091" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L1060" } }, "unconfigure_table_map": { @@ -31611,7 +31935,7 @@ "module_name": "routing.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_tftp_source_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L755" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py#L724" } }, "unconfigure_time_range": { @@ -31620,7 +31944,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_time_range", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5460" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L5517" } }, "unconfigure_trustpoint": { @@ -31656,7 +31980,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_tunnel_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3197" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L3198" } }, "unconfigure_udld": { @@ -31674,7 +31998,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_udld_aggressive", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2387" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2401" } }, "unconfigure_udld_enable": { @@ -31688,11 +32012,11 @@ }, "unconfigure_udld_message_time": { "iosxe": { - "doc": " Unconfigures udld message time\n Example : no udld message time\n\n Args:\n device ('obj'): device to use\n Returns:\n None\n Raises:\n SubCommandFailure\n ", - "module_name": "platform.configure", + "doc": " Unconfigures UDLD Message Time on Target Device globally\n Args:\n device ('obj') : device to use\n Returns:\n None\n Raises:\n SubCommandFailure\n ", + "module_name": "udld.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_udld_message_time", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L2405" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/udld/configure.py#L113" } }, "unconfigure_umbrella_global_parameter_map": { @@ -31737,7 +32061,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_vfi", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4823" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4828" } }, "unconfigure_vfi_context_evpn": { @@ -31755,7 +32079,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_virtual_service", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1560" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1612" } }, "unconfigure_virtual_service_activate": { @@ -31764,7 +32088,7 @@ "module_name": "platform.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_virtual_service_activate", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1581" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py#L1633" } }, "unconfigure_virtual_template": { @@ -31773,7 +32097,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_virtual_template", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4458" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L4463" } }, "unconfigure_vlan_configuration": { @@ -31800,7 +32124,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_vlan_interface", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2958" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L2959" } }, "unconfigure_vlan_state_active": { @@ -31890,7 +32214,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unconfigure_vrf_select_source", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5724" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L5737" } }, "unconfigure_vrrp_interface": { @@ -31971,7 +32295,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "unit_convert", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L645" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L646" } }, "unshut_interface": { @@ -32005,7 +32329,7 @@ "module_name": "interface.configure", "package": "genie.libs.sdk.apis", "uid": "unshut_port_channel", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8669" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py#L8682" } }, "unshutdown_ipv6_eigrp_instance": { @@ -34027,6 +34351,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py#L571" } }, + "verify_interface_capabilities_multiple_media_types": { + "iosxe": { + "doc": "Verify interface capabilities multiple_media_types in - show interfaces capabilities', 'show interfaces {interface} capabilities'\n Args:\n device (`obj`): Device object\n interface (`str`): Interface name\n expected_multiple_media_types (`str`): 'rj45 - interface type supporting copper connection.\n 'sfp, - interface type supporting fiber connection.\n 'rj45 , 'sfp', 'auto-select' - interface type supporting both fiber and copper connection.\n \n Returns:\n result(`bool`): verify result\n ", + "module_name": "interface.verify", + "package": "genie.libs.sdk.apis", + "uid": "verify_interface_capabilities_multiple_media_types", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py#L1231" + } + }, "verify_interface_config_carrier_delay": { "iosxe": { "doc": "Verify interface carrier_delay config in - show run interface\n\n Args:\n device (`obj`): Device object\n interface (`str`): Interface name\n max_time (`int`): max time\n check_interval (`int`): check interval\n flag (`bool`): True if verify has carrier delay\n False if verify no carrier delay\n Returns:\n result(`bool`): verify result\n ", @@ -34438,6 +34771,15 @@ "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/junos/interface/verify.py#L15" } }, + "verify_interfaces_transceiver_supported": { + "iosxe": { + "doc": "Verify if the list of transceivers are supported or not\n\n Args:\n device (`obj`): Device object\n transceivers (`list`): List of transceivers to check \n \n Returns:\n result(`bool`): True if supported else False\n ", + "module_name": "interface.verify", + "package": "genie.libs.sdk.apis", + "uid": "verify_interfaces_transceiver_supported", + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py#L1264" + } + }, "verify_iox_disabled": { "iosxe": { "doc": " \n verify_iox_disabled\n Check show iox and confirm all services are not running\n Args:\n device ('obj') : Device object\n max_time ('int') : max time to wait\n interval ('int') : interval timer\n Returns:\n True\n False\n Raises:\n None\n ", @@ -34748,7 +35090,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_keywords_in_output", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3703" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3704" } }, "verify_l2route_mac_route_flag": { @@ -34994,7 +35336,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_login_with_credentials", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2960" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2961" } }, "verify_lsp_neighbor": { @@ -35177,7 +35519,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_mpls_experimental_bits", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2282" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2283" } }, "verify_mpls_forwarding_table_gid_counter": { @@ -35393,7 +35735,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_no_mpls_header", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2733" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2734" } }, "verify_no_ntp_association_configuration": { @@ -36094,7 +36436,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_as_path", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3415" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3416" } }, "verify_pcap_capability": { @@ -36103,7 +36445,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_capability", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3519" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L3520" } }, "verify_pcap_dscp_bits": { @@ -36112,7 +36454,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_dscp_bits", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2315" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2316" } }, "verify_pcap_has_imcp_destination_unreachable": { @@ -36121,7 +36463,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_has_imcp_destination_unreachable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2086" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2087" } }, "verify_pcap_has_imcpv6_destination_unreachable": { @@ -36130,7 +36472,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_has_imcpv6_destination_unreachable", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2120" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2121" } }, "verify_pcap_ldp_packet": { @@ -36139,7 +36481,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_ldp_packet", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4252" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4253" } }, "verify_pcap_mpls_packet": { @@ -36148,7 +36490,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_mpls_packet", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2575" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2576" } }, "verify_pcap_packet": { @@ -36157,7 +36499,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_packet", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2839" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2840" } }, "verify_pcap_packet_destination_port": { @@ -36166,7 +36508,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_packet_destination_port", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2545" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2546" } }, "verify_pcap_packet_protocol": { @@ -36175,7 +36517,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_packet_protocol", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2485" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2486" } }, "verify_pcap_packet_source_port": { @@ -36184,7 +36526,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_packet_source_port", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2514" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2515" } }, "verify_pcap_packet_type": { @@ -36193,7 +36535,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "verify_pcap_packet_type", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2456" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L2457" } }, "verify_ping": { @@ -37691,7 +38033,7 @@ "module_name": "interface.verify", "package": "genie.libs.sdk.apis", "uid": "verify_tunnel_protection", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py#L1184" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py#L1186" } }, "verify_tunnel_stats": { @@ -37841,7 +38183,7 @@ "module_name": "utils", "package": "genie.libs.sdk.apis", "uid": "web_interaction", - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4157" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py#L4158" } }, "write_erase_reload_device": { diff --git a/pkgs/sdk-pkg/sdk_generator/output/github_triggers.json b/pkgs/sdk-pkg/sdk_generator/output/github_triggers.json index da602fe78..38a673971 100644 --- a/pkgs/sdk-pkg/sdk_generator/output/github_triggers.json +++ b/pkgs/sdk-pkg/sdk_generator/output/github_triggers.json @@ -3723,7 +3723,7 @@ "interval": 10, "max_time": 180 }, - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/modify/bgp/iosxe/modify.py" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/modify/bgp/iosxr/modify.py" }, "top": { "contribute": false, @@ -3800,7 +3800,7 @@ "interval": 10, "max_time": 180 }, - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/modify/bgp/iosxe/modify.py" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/modify/bgp/iosxr/modify.py" }, "top": { "contribute": false, @@ -3958,7 +3958,7 @@ "interval": 10, "max_time": 180 }, - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/modify/interface/iosxe/modify.py" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/modify/interface/iosxr/modify.py" }, "top": { "contribute": false, @@ -8503,7 +8503,7 @@ "interval": 10, "max_time": 180 }, - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/shutnoshut/interface/iosxe/shutnoshut.py" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/shutnoshut/interface/iosxr/shutnoshut.py" }, "top": { "contribute": false, @@ -9006,7 +9006,7 @@ "interval": 10, "max_time": 180 }, - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/unconfigconfig/bgp/iosxe/unconfigconfig.py" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/unconfigconfig/bgp/iosxr/unconfigconfig.py" }, "top": { "contribute": false, @@ -9808,7 +9808,7 @@ "interval": 10, "max_time": 180 }, - "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/unconfigconfig/bgp/iosxe/unconfigconfig.py" + "url": "https://github.com/CiscoTestAutomation/genielibs/tree/master/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/unconfigconfig/bgp/iosxr/unconfigconfig.py" }, "top": { "contribute": false, diff --git a/pkgs/sdk-pkg/sdk_generator/output/github_verifications.json b/pkgs/sdk-pkg/sdk_generator/output/github_verifications.json index 73e97d217..129f85916 100644 --- a/pkgs/sdk-pkg/sdk_generator/output/github_verifications.json +++ b/pkgs/sdk-pkg/sdk_generator/output/github_verifications.json @@ -1254,6 +1254,15 @@ }, "url": "https://github.com/CiscoTestAutomation/genieparser/tree/master/src/genie/libs/parser/iosxe/show_bgp.py" }, + "iosxr": { + "doc": " Parser for:\n * 'show bgp l2vpn evpn summary'\n ", + "groups": [], + "schema": "{'instance': {Any (str) *: {Optional (str) vrf: {Any (str) *: {Optional (str) address_family: {Any (str) *: {Optional (str) route_distinguisher: , Optional (str) bgp_table_version: , Optional (str) local_as: Or (, ), Optional (str) bgp_vrf: , Optional (str) router_id: , Optional (str) non_stop_routing: , Optional (str) table_state: , Optional (str) table_id: , Optional (str) rd_version: , Optional (str) generic_scan_interval: , Optional (str) nsr_initial_initsync_version: , Optional (str) nsr_initial_init_ver_status: , Optional (str) nsr_issu_sync_group_versions: , Optional (str) scan_interval: , Optional (str) operation_mode: , Optional (str) vrf_id: , Optional (str) instance_number: , Optional (str) vrf_state: , Optional (str) process: {Any (str) *: {'rcvtblver': , 'brib_rib': , 'labelver': , 'importver': , 'sendtblver': , 'standbyver': }}}}, Optional (str) neighbor: {Any (str) *: {'remote_as': Or (, ), 'address_family': {Any (str) *: {'tbl_ver': , 'spk': , 'msg_rcvd': , 'msg_sent': , 'input_queue': , 'output_queue': , 'up_down': , 'state_pfxrcd': , Optional (str) route_distinguisher: }}}}}}}}}", + "source": { + "class": "genie.harness.base.Template" + }, + "url": "https://github.com/CiscoTestAutomation/genieparser/tree/master/src/genie/libs/parser/iosxr/show_bgp.py" + }, "nxos": { "devices": [ "uut" @@ -3446,7 +3455,7 @@ "attempt": 5, "interval": 10 }, - "schema": "{Any (str) *: {Optional (str) oper_status: , Optional (str) line_protocol: , Optional (str) enabled: , Optional (str) is_deleted: , Optional (str) connected: , Optional (str) err_disabled: , Optional (str) suspended: , Optional (str) description: , Optional (str) type: , Optional (str) link_state: , Optional (str) port_speed: , Optional (str) duplex_mode: , Optional (str) link_type: , Optional (str) media_type: , Optional (str) mtu: , Optional (str) maximum_active_vcs: , Optional (str) vcs_per_vp: , Optional (str) vc_idle_disconnect_time: , Optional (str) vc_auto_creation: , Optional (str) current_vccs: , Optional (str) aal5_crc_errors: , Optional (str) aal5_oversized_sdus: , Optional (str) aal5_sar_timeouts: , Optional (str) vaccess_status: , Optional (str) vaccess_loopback: , Optional (str) base_pppoatm: , Optional (str) dtr_pulsed: , Optional (str) sub_mtu: , Optional (str) medium: , Optional (str) reliability: , Optional (str) txload: , Optional (str) rxload: , Optional (str) mac_address: , Optional (str) phys_address: , Optional (str) delay: , Optional (str) carrier_delay: , Optional (str) carrier_delay_up: , Optional (str) carrier_delay_down: , Optional (str) keepalive: , Optional (str) auto_negotiate: , Optional (str) arp_type: , Optional (str) arp_timeout: , Optional (str) last_input: , Optional (str) last_output: , Optional (str) output_hang: , Optional (str) autostate: , Optional (str) tunnel_source_ip: , Optional (str) tunnel_source_interface: , Optional (str) tunnel_destination_ip: , Optional (str) tunnel_protocol: , Optional (str) tunnel_ttl: , Optional (str) tunnel_transport_mtu: , Optional (str) tunnel_transmit_bandwidth: , Optional (str) tunnel_receive_bandwidth: , Optional (str) tunnel_protection: , Optional (str) tunnel_profile: , Optional (str) queues: {Optional (str) input_queue_size: , Optional (str) input_queue_max: , Optional (str) input_queue_drops: , Optional (str) input_queue_flushes: , Optional (str) total_output_drop: , Optional (str) queue_strategy: , Optional (str) output_queue_size: , Optional (str) output_queue_max: , Optional (str) threshold: , Optional (str) drops: }, Optional (str) flow_control: {Optional (str) receive: , Optional (str) send: }, Optional (str) port_channel: {Optional (str) port_channel_member: , Optional (str) port_channel_int: , Optional (str) port_channel_member_intfs: , Optional (str) active_members: , Optional (str) num_of_pf_jumbo_supported_members: }, Optional (str) bandwidth: , Optional (str) counters: {Optional (str) rate: {Optional (str) load_interval: , Optional (str) in_rate: , Optional (str) in_rate_pkts: , Optional (str) out_rate: , Optional (str) out_rate_pkts: , Optional (str) in_rate_bps: , Optional (str) in_rate_pps: , Optional (str) out_rate_bps: , Optional (str) out_rate_pps: }, Optional (str) in_multicast_pkts: , Optional (str) in_broadcast_pkts: , Optional (str) in_crc_errors: , Optional (str) in_giants: , Optional (str) in_pkts: , Optional (str) in_frame: , Optional (str) in_runts: , Optional (str) in_overrun: , Optional (str) in_ignored: , Optional (str) in_watchdog: , Optional (str) in_with_dribble: , Optional (str) in_octets: , Optional (str) in_errors: , Optional (str) in_abort: , Optional (str) in_no_buffer: , Optional (str) in_throttles: , Optional (str) in_mac_pause_frames: , Optional (str) out_pkts: , Optional (str) out_octets: , Optional (str) out_multicast_pkts: , Optional (str) out_broadcast_pkts: , Optional (str) out_errors: , Optional (str) out_collision: , Optional (str) out_interface_resets: , Optional (str) out_unknown_protocl_drops: , Optional (str) out_babbles: , Optional (str) out_deferred: , Optional (str) out_underruns: , Optional (str) out_late_collision: , Optional (str) out_lost_carrier: , Optional (str) out_no_carrier: , Optional (str) out_babble: , Optional (str) out_mac_pause_frames: , Optional (str) out_buffer_failure: , Optional (str) out_buffers_swapped: , Optional (str) last_clear: }, Optional (str) encapsulations: {Optional (str) encapsulation: , Optional (str) first_dot1q: , Optional (str) second_dot1q: , Optional (str) native_vlan: }, Optional (str) ipv4: {Any (str) *: {Optional (str) ip: , Optional (str) prefix_length: , Optional (str) secondary: }, Optional (str) unnumbered: {'interface_ref': }}}}", + "schema": "{Any (str) *: {Optional (str) oper_status: , Optional (str) line_protocol: , Optional (str) enabled: , Optional (str) is_deleted: , Optional (str) connected: , Optional (str) err_disabled: , Optional (str) suspended: , Optional (str) description: , Optional (str) type: , Optional (str) link_state: , Optional (str) port_speed: , Optional (str) duplex_mode: , Optional (str) link_type: , Optional (str) media_type: , Optional (str) mtu: , Optional (str) maximum_active_vcs: , Optional (str) vcs_per_vp: , Optional (str) vc_idle_disconnect_time: , Optional (str) vc_auto_creation: , Optional (str) current_vccs: , Optional (str) aal5_crc_errors: , Optional (str) aal5_oversized_sdus: , Optional (str) aal5_sar_timeouts: , Optional (str) vaccess_status: , Optional (str) vaccess_loopback: , Optional (str) base_pppoatm: , Optional (str) dtr_pulsed: , Optional (str) sub_mtu: , Optional (str) medium: , Optional (str) reliability: , Optional (str) txload: , Optional (str) rxload: , Optional (str) mac_address: , Optional (str) phys_address: , Optional (str) delay: , Optional (str) carrier_delay: , Optional (str) carrier_delay_up: , Optional (str) carrier_delay_down: , Optional (str) keepalive: , Optional (str) auto_negotiate: , Optional (str) arp_type: , Optional (str) arp_timeout: , Optional (str) last_input: , Optional (str) last_output: , Optional (str) output_hang: , Optional (str) autostate: , Optional (str) tunnel_source_ip: , Optional (str) tunnel_source_interface: , Optional (str) tunnel_destination_ip: , Optional (str) tunnel_protocol: , Optional (str) tunnel_ttl: , Optional (str) tunnel_transport_mtu: , Optional (str) tunnel_transmit_bandwidth: , Optional (str) tunnel_receive_bandwidth: , Optional (str) tunnel_protection: , Optional (str) tunnel_profile: , Optional (str) carrier_transitions: , Optional (str) queues: {Optional (str) input_queue_size: , Optional (str) input_queue_max: , Optional (str) input_queue_drops: , Optional (str) input_queue_flushes: , Optional (str) total_output_drop: , Optional (str) queue_strategy: , Optional (str) output_queue_size: , Optional (str) output_queue_max: , Optional (str) threshold: , Optional (str) drops: }, Optional (str) flow_control: {Optional (str) receive: , Optional (str) send: }, Optional (str) port_channel: {Optional (str) port_channel_member: , Optional (str) port_channel_int: , Optional (str) port_channel_member_intfs: , Optional (str) active_members: , Optional (str) num_of_pf_jumbo_supported_members: }, Optional (str) bandwidth: , Optional (str) counters: {Optional (str) rate: {Optional (str) load_interval: , Optional (str) in_rate: , Optional (str) in_rate_pkts: , Optional (str) out_rate: , Optional (str) out_rate_pkts: , Optional (str) in_rate_bps: , Optional (str) in_rate_pps: , Optional (str) out_rate_bps: , Optional (str) out_rate_pps: }, Optional (str) in_multicast_pkts: , Optional (str) in_broadcast_pkts: , Optional (str) in_crc_errors: , Optional (str) in_giants: , Optional (str) in_pkts: , Optional (str) in_frame: , Optional (str) in_runts: , Optional (str) in_overrun: , Optional (str) in_ignored: , Optional (str) in_watchdog: , Optional (str) in_with_dribble: , Optional (str) in_octets: , Optional (str) in_errors: , Optional (str) in_abort: , Optional (str) in_no_buffer: , Optional (str) in_throttles: , Optional (str) in_mac_pause_frames: , Optional (str) out_pkts: , Optional (str) out_octets: , Optional (str) out_multicast_pkts: , Optional (str) out_broadcast_pkts: , Optional (str) out_errors: , Optional (str) out_collision: , Optional (str) out_interface_resets: , Optional (str) out_unknown_protocl_drops: , Optional (str) out_babbles: , Optional (str) out_deferred: , Optional (str) out_underruns: , Optional (str) out_late_collision: , Optional (str) out_lost_carrier: , Optional (str) out_no_carrier: , Optional (str) out_babble: , Optional (str) out_mac_pause_frames: , Optional (str) out_buffer_failure: , Optional (str) out_buffers_swapped: , Optional (str) last_clear: }, Optional (str) encapsulations: {Optional (str) encapsulation: , Optional (str) first_dot1q: , Optional (str) second_dot1q: , Optional (str) native_vlan: }, Optional (str) ipv4: {Any (str) *: {Optional (str) ip: , Optional (str) prefix_length: , Optional (str) secondary: }, Optional (str) unnumbered: {'interface_ref': }}}}", "source": { "class": "genie.harness.base.Template" }, @@ -3463,7 +3472,7 @@ "attempt": 5, "interval": 10 }, - "schema": "{Any (str) *: {Optional (str) oper_status: , Optional (str) line_protocol: , Optional (str) enabled: , Optional (str) is_deleted: , Optional (str) connected: , Optional (str) err_disabled: , Optional (str) suspended: , Optional (str) description: , Optional (str) type: , Optional (str) link_state: , Optional (str) port_speed: , Optional (str) duplex_mode: , Optional (str) link_type: , Optional (str) media_type: , Optional (str) mtu: , Optional (str) maximum_active_vcs: , Optional (str) vcs_per_vp: , Optional (str) vc_idle_disconnect_time: , Optional (str) vc_auto_creation: , Optional (str) current_vccs: , Optional (str) aal5_crc_errors: , Optional (str) aal5_oversized_sdus: , Optional (str) aal5_sar_timeouts: , Optional (str) vaccess_status: , Optional (str) vaccess_loopback: , Optional (str) base_pppoatm: , Optional (str) dtr_pulsed: , Optional (str) sub_mtu: , Optional (str) medium: , Optional (str) reliability: , Optional (str) txload: , Optional (str) rxload: , Optional (str) mac_address: , Optional (str) phys_address: , Optional (str) delay: , Optional (str) carrier_delay: , Optional (str) carrier_delay_up: , Optional (str) carrier_delay_down: , Optional (str) keepalive: , Optional (str) auto_negotiate: , Optional (str) arp_type: , Optional (str) arp_timeout: , Optional (str) last_input: , Optional (str) last_output: , Optional (str) output_hang: , Optional (str) autostate: , Optional (str) tunnel_source_ip: , Optional (str) tunnel_source_interface: , Optional (str) tunnel_destination_ip: , Optional (str) tunnel_protocol: , Optional (str) tunnel_ttl: , Optional (str) tunnel_transport_mtu: , Optional (str) tunnel_transmit_bandwidth: , Optional (str) tunnel_receive_bandwidth: , Optional (str) tunnel_protection: , Optional (str) tunnel_profile: , Optional (str) queues: {Optional (str) input_queue_size: , Optional (str) input_queue_max: , Optional (str) input_queue_drops: , Optional (str) input_queue_flushes: , Optional (str) total_output_drop: , Optional (str) queue_strategy: , Optional (str) output_queue_size: , Optional (str) output_queue_max: , Optional (str) threshold: , Optional (str) drops: }, Optional (str) flow_control: {Optional (str) receive: , Optional (str) send: }, Optional (str) port_channel: {Optional (str) port_channel_member: , Optional (str) port_channel_int: , Optional (str) port_channel_member_intfs: , Optional (str) active_members: , Optional (str) num_of_pf_jumbo_supported_members: }, Optional (str) bandwidth: , Optional (str) counters: {Optional (str) rate: {Optional (str) load_interval: , Optional (str) in_rate: , Optional (str) in_rate_pkts: , Optional (str) out_rate: , Optional (str) out_rate_pkts: , Optional (str) in_rate_bps: , Optional (str) in_rate_pps: , Optional (str) out_rate_bps: , Optional (str) out_rate_pps: }, Optional (str) in_multicast_pkts: , Optional (str) in_broadcast_pkts: , Optional (str) in_crc_errors: , Optional (str) in_giants: , Optional (str) in_pkts: , Optional (str) in_frame: , Optional (str) in_runts: , Optional (str) in_overrun: , Optional (str) in_ignored: , Optional (str) in_watchdog: , Optional (str) in_with_dribble: , Optional (str) in_octets: , Optional (str) in_errors: , Optional (str) in_abort: , Optional (str) in_no_buffer: , Optional (str) in_throttles: , Optional (str) in_mac_pause_frames: , Optional (str) out_pkts: , Optional (str) out_octets: , Optional (str) out_multicast_pkts: , Optional (str) out_broadcast_pkts: , Optional (str) out_errors: , Optional (str) out_collision: , Optional (str) out_interface_resets: , Optional (str) out_unknown_protocl_drops: , Optional (str) out_babbles: , Optional (str) out_deferred: , Optional (str) out_underruns: , Optional (str) out_late_collision: , Optional (str) out_lost_carrier: , Optional (str) out_no_carrier: , Optional (str) out_babble: , Optional (str) out_mac_pause_frames: , Optional (str) out_buffer_failure: , Optional (str) out_buffers_swapped: , Optional (str) last_clear: }, Optional (str) encapsulations: {Optional (str) encapsulation: , Optional (str) first_dot1q: , Optional (str) second_dot1q: , Optional (str) native_vlan: }, Optional (str) ipv4: {Any (str) *: {Optional (str) ip: , Optional (str) prefix_length: , Optional (str) secondary: }, Optional (str) unnumbered: {'interface_ref': }}}}", + "schema": "{Any (str) *: {Optional (str) oper_status: , Optional (str) line_protocol: , Optional (str) enabled: , Optional (str) is_deleted: , Optional (str) connected: , Optional (str) err_disabled: , Optional (str) suspended: , Optional (str) description: , Optional (str) type: , Optional (str) link_state: , Optional (str) port_speed: , Optional (str) duplex_mode: , Optional (str) link_type: , Optional (str) media_type: , Optional (str) mtu: , Optional (str) maximum_active_vcs: , Optional (str) vcs_per_vp: , Optional (str) vc_idle_disconnect_time: , Optional (str) vc_auto_creation: , Optional (str) current_vccs: , Optional (str) aal5_crc_errors: , Optional (str) aal5_oversized_sdus: , Optional (str) aal5_sar_timeouts: , Optional (str) vaccess_status: , Optional (str) vaccess_loopback: , Optional (str) base_pppoatm: , Optional (str) dtr_pulsed: , Optional (str) sub_mtu: , Optional (str) medium: , Optional (str) reliability: , Optional (str) txload: , Optional (str) rxload: , Optional (str) mac_address: , Optional (str) phys_address: , Optional (str) delay: , Optional (str) carrier_delay: , Optional (str) carrier_delay_up: , Optional (str) carrier_delay_down: , Optional (str) keepalive: , Optional (str) auto_negotiate: , Optional (str) arp_type: , Optional (str) arp_timeout: , Optional (str) last_input: , Optional (str) last_output: , Optional (str) output_hang: , Optional (str) autostate: , Optional (str) tunnel_source_ip: , Optional (str) tunnel_source_interface: , Optional (str) tunnel_destination_ip: , Optional (str) tunnel_protocol: , Optional (str) tunnel_ttl: , Optional (str) tunnel_transport_mtu: , Optional (str) tunnel_transmit_bandwidth: , Optional (str) tunnel_receive_bandwidth: , Optional (str) tunnel_protection: , Optional (str) tunnel_profile: , Optional (str) carrier_transitions: , Optional (str) queues: {Optional (str) input_queue_size: , Optional (str) input_queue_max: , Optional (str) input_queue_drops: , Optional (str) input_queue_flushes: , Optional (str) total_output_drop: , Optional (str) queue_strategy: , Optional (str) output_queue_size: , Optional (str) output_queue_max: , Optional (str) threshold: , Optional (str) drops: }, Optional (str) flow_control: {Optional (str) receive: , Optional (str) send: }, Optional (str) port_channel: {Optional (str) port_channel_member: , Optional (str) port_channel_int: , Optional (str) port_channel_member_intfs: , Optional (str) active_members: , Optional (str) num_of_pf_jumbo_supported_members: }, Optional (str) bandwidth: , Optional (str) counters: {Optional (str) rate: {Optional (str) load_interval: , Optional (str) in_rate: , Optional (str) in_rate_pkts: , Optional (str) out_rate: , Optional (str) out_rate_pkts: , Optional (str) in_rate_bps: , Optional (str) in_rate_pps: , Optional (str) out_rate_bps: , Optional (str) out_rate_pps: }, Optional (str) in_multicast_pkts: , Optional (str) in_broadcast_pkts: , Optional (str) in_crc_errors: , Optional (str) in_giants: , Optional (str) in_pkts: , Optional (str) in_frame: , Optional (str) in_runts: , Optional (str) in_overrun: , Optional (str) in_ignored: , Optional (str) in_watchdog: , Optional (str) in_with_dribble: , Optional (str) in_octets: , Optional (str) in_errors: , Optional (str) in_abort: , Optional (str) in_no_buffer: , Optional (str) in_throttles: , Optional (str) in_mac_pause_frames: , Optional (str) out_pkts: , Optional (str) out_octets: , Optional (str) out_multicast_pkts: , Optional (str) out_broadcast_pkts: , Optional (str) out_errors: , Optional (str) out_collision: , Optional (str) out_interface_resets: , Optional (str) out_unknown_protocl_drops: , Optional (str) out_babbles: , Optional (str) out_deferred: , Optional (str) out_underruns: , Optional (str) out_late_collision: , Optional (str) out_lost_carrier: , Optional (str) out_no_carrier: , Optional (str) out_babble: , Optional (str) out_mac_pause_frames: , Optional (str) out_buffer_failure: , Optional (str) out_buffers_swapped: , Optional (str) last_clear: }, Optional (str) encapsulations: {Optional (str) encapsulation: , Optional (str) first_dot1q: , Optional (str) second_dot1q: , Optional (str) native_vlan: }, Optional (str) ipv4: {Any (str) *: {Optional (str) ip: , Optional (str) prefix_length: , Optional (str) secondary: }, Optional (str) unnumbered: {'interface_ref': }}}}", "source": { "class": "genie.harness.base.Template" }, @@ -4316,7 +4325,7 @@ "attempt": 15, "interval": 5 }, - "schema": "{Any (str) *: {'vrf': , 'interface_status': , 'iod': , Optional (str) ipv4: {Any (str) *: {Optional (str) ip: , Optional (str) prefix_length: , Optional (str) secondary: , Optional (str) route_tag: , Optional (str) ip_subnet: , Optional (str) broadcast_address: , Optional (str) route_preference: }, Optional (str) unnumbered: {'interface_ref': }, 'counters': {'unicast_packets_sent': , 'unicast_packets_received': , 'unicast_packets_forwarded': , 'unicast_packets_originated': , 'unicast_packets_consumed': , 'unicast_bytes_sent': , 'unicast_bytes_received': , 'unicast_bytes_forwarded': , 'unicast_bytes_originated': , 'unicast_bytes_consumed': , 'multicast_packets_sent': , 'multicast_packets_received': , 'multicast_packets_forwarded': , 'multicast_packets_originated': , 'multicast_packets_consumed': , 'multicast_bytes_sent': , 'multicast_bytes_received': , 'multicast_bytes_forwarded': , 'multicast_bytes_originated': , 'multicast_bytes_consumed': , 'broadcast_packets_sent': , 'broadcast_packets_received': , 'broadcast_packets_forwarded': , 'broadcast_packets_originated': , 'broadcast_packets_consumed': , 'broadcast_bytes_sent': , 'broadcast_bytes_received': , 'broadcast_bytes_forwarded': , 'broadcast_bytes_originated': , 'broadcast_bytes_consumed': , 'labeled_packets_sent': , 'labeled_packets_received': , 'labeled_packets_forwarded': , 'labeled_packets_originated': , 'labeled_packets_consumed': , 'labeled_bytes_sent': , 'labeled_bytes_received': , 'labeled_bytes_forwarded': , 'labeled_bytes_originated': , 'labeled_bytes_consumed': }}, Optional (str) multicast_groups: , Optional (str) multicast_groups_address: , 'ip_mtu': , 'proxy_arp': , 'local_proxy_arp': , 'multicast_routing': , 'icmp_redirects': , 'directed_broadcast': , Optional (str) ip_forwarding: , 'icmp_unreachable': , 'icmp_port_unreachable': , 'unicast_reverse_path': , 'load_sharing': , 'int_stat_last_reset': , Optional (str) wccp_redirect_outbound: , Optional (str) wccp_redirect_inbound: , Optional (str) wccp_redirect_exclude: }}", + "schema": "{Any (str) *: {'vrf': , 'interface_status': , 'iod': , Optional (str) mode: ListOf (type) , Optional (str) ipv4: {Any (str) *: {Optional (str) ip: , Optional (str) prefix_length: , Optional (str) secondary: , Optional (str) route_tag: , Optional (str) ip_subnet: , Optional (str) broadcast_address: , Optional (str) route_preference: }, Optional (str) unnumbered: {'interface_ref': }, Optional (str) counters: {'unicast_packets_sent': , 'unicast_packets_received': , 'unicast_packets_forwarded': , 'unicast_packets_originated': , 'unicast_packets_consumed': , 'unicast_bytes_sent': , 'unicast_bytes_received': , 'unicast_bytes_forwarded': , 'unicast_bytes_originated': , 'unicast_bytes_consumed': , 'multicast_packets_sent': , 'multicast_packets_received': , 'multicast_packets_forwarded': , 'multicast_packets_originated': , 'multicast_packets_consumed': , 'multicast_bytes_sent': , 'multicast_bytes_received': , 'multicast_bytes_forwarded': , 'multicast_bytes_originated': , 'multicast_bytes_consumed': , 'broadcast_packets_sent': , 'broadcast_packets_received': , 'broadcast_packets_forwarded': , 'broadcast_packets_originated': , 'broadcast_packets_consumed': , 'broadcast_bytes_sent': , 'broadcast_bytes_received': , 'broadcast_bytes_forwarded': , 'broadcast_bytes_originated': , 'broadcast_bytes_consumed': , 'labeled_packets_sent': , 'labeled_packets_received': , 'labeled_packets_forwarded': , 'labeled_packets_originated': , 'labeled_packets_consumed': , 'labeled_bytes_sent': , 'labeled_bytes_received': , 'labeled_bytes_forwarded': , 'labeled_bytes_originated': , 'labeled_bytes_consumed': }}, Optional (str) multicast_groups: , Optional (str) multicast_groups_address: , Optional (str) ip_mtu: , Optional (str) proxy_arp: , Optional (str) local_proxy_arp: , Optional (str) multicast_routing: , Optional (str) icmp_redirects: , Optional (str) directed_broadcast: , Optional (str) ip_forwarding: , Optional (str) icmp_unreachable: , Optional (str) icmp_port_unreachable: , Optional (str) unicast_reverse_path: , Optional (str) load_sharing: , Optional (str) int_stat_last_reset: , Optional (str) wccp_redirect_outbound: , Optional (str) wccp_redirect_inbound: , Optional (str) wccp_redirect_exclude: }}", "source": { "class": "genie.harness.base.Template" }, @@ -8382,7 +8391,7 @@ }, "doc": "Parser for show module", "groups": [], - "schema": "{Optional (str) switch: {Any (str) *: {'port': , 'model': , 'serial_number': , 'mac_address': , 'hw_ver': , 'sw_ver': }}, Optional (str) module: {: {'ports': , 'card_type': , 'model': , 'serial': , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}, Optional (str) number_of_mac_address: , Optional (str) chassis_mac_address_lower_range: , Optional (str) chassis_mac_address_upper_range: , Optional (str) switches: {: {Optional (str) module: {: {'ports': , 'card_type': , 'model': , 'serial': , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}}}, Optional (str) chassis: {: {'number_of_mac_address': , 'chassis_mac_address_lower_range': , 'chassis_mac_address_upper_range': }}}", + "schema": "{Optional (str) switch: {Any (str) *: {'port': , 'model': , 'serial_number': , 'mac_address': , 'hw_ver': , 'sw_ver': }}, Optional (str) module: {: {'ports': , 'card_type': , 'model': , Optional (str) serial: , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}, Optional (str) number_of_mac_address: , Optional (str) chassis_mac_address_lower_range: , Optional (str) chassis_mac_address_upper_range: , Optional (str) switches: {: {Optional (str) module: {: {'ports': , 'card_type': , 'model': , 'serial': , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}}}, Optional (str) chassis: {: {'number_of_mac_address': , 'chassis_mac_address_lower_range': , 'chassis_mac_address_upper_range': }}}", "source": { "class": "genie.harness.base.Template" }, @@ -8413,7 +8422,7 @@ "doc": "Parser for show module", "exclude": [], "groups": [], - "schema": "{Optional (str) switch: {Any (str) *: {'port': , 'model': , 'serial_number': , 'mac_address': , 'hw_ver': , 'sw_ver': }}, Optional (str) module: {: {'ports': , 'card_type': , 'model': , 'serial': , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}, Optional (str) number_of_mac_address: , Optional (str) chassis_mac_address_lower_range: , Optional (str) chassis_mac_address_upper_range: , Optional (str) switches: {: {Optional (str) module: {: {'ports': , 'card_type': , 'model': , 'serial': , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}}}, Optional (str) chassis: {: {'number_of_mac_address': , 'chassis_mac_address_lower_range': , 'chassis_mac_address_upper_range': }}}", + "schema": "{Optional (str) switch: {Any (str) *: {'port': , 'model': , 'serial_number': , 'mac_address': , 'hw_ver': , 'sw_ver': }}, Optional (str) module: {: {'ports': , 'card_type': , 'model': , Optional (str) serial: , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}, Optional (str) number_of_mac_address: , Optional (str) chassis_mac_address_lower_range: , Optional (str) chassis_mac_address_upper_range: , Optional (str) switches: {: {Optional (str) module: {: {'ports': , 'card_type': , 'model': , 'serial': , 'mac_address': , 'hw': , 'fw': , 'sw': , 'status': , Optional (str) redundancy_role: , Optional (str) operating_redundancy_mode: , Optional (str) configured_redundancy_mode: }}}}, Optional (str) chassis: {: {'number_of_mac_address': , 'chassis_mac_address_lower_range': , 'chassis_mac_address_upper_range': }}}", "source": { "class": "genie.harness.base.Template" }, @@ -9479,7 +9488,7 @@ "doc": "Parser for show running-config bgp", "exclude": [], "groups": [], - "schema": "{'bgp': {'instance': {'default': {'bgp_id': , 'protocol_shutdown': , Optional (str) ps_name: {Any (str) *: {'ps_fall_over_bfd': , 'ps_suppress_four_byte_as_capability': , Optional (str) ps_description: , 'ps_disable_connected_check': , 'ps_ebgp_multihop': , Optional (str) ps_ebgp_multihop_max_hop: , Optional (str) ps_local_as_as_no: , 'ps_local_as_no_prepend': , 'ps_local_as_dual_as': , 'ps_local_as_replace_as': , Optional (str) ps_password_text: , Optional (str) ps_remote_as: , 'ps_shutdown': , Optional (str) ps_keepalive_interval: , Optional (str) ps_hodltime: , Optional (str) ps_transport_connection_mode: , Optional (str) ps_update_source: }}, Optional (str) pp_name: {Any (str) *: {Optional (str) pp_allowas_in: , Optional (str) pp_allowas_in_as_number: , Optional (str) pp_as_override: , Optional (str) pp_default_originate: , Optional (str) pp_default_originate_route_map: , Optional (str) pp_route_map_name_in: , Optional (str) pp_route_map_name_out: , Optional (str) pp_maximum_prefix_max_prefix_no: , Optional (str) pp_maximum_prefix_threshold: , Optional (str) pp_maximum_prefix_restart: , Optional (str) pp_maximum_prefix_warning_only: , Optional (str) pp_next_hop_self: , Optional (str) pp_route_reflector_client: , Optional (str) pp_send_community: , 'pp_soft_reconfiguration': , Optional (str) pp_soo: }}, Optional (str) peer_name: {Any (str) *: {Optional (str) peer_fall_over_bfd: , Optional (str) peer_remote_as: , Optional (str) peer_password_text: , Optional (str) peer_af_name: {Any (str) *: {Optional (str) peer_af_send_community: , Optional (str) peer_maximum_prefix_max_prefix_no: , Optional (str) peer_maximum_prefix_threshold: , Optional (str) peer_maximum_prefix_warning_only: , Optional (str) peer_next_hop_self: }}}}, 'vrf': {Any (str) *: {Optional (str) rd: , Optional (str) always_compare_med: , Optional (str) bestpath_compare_routerid: , Optional (str) bestpath_cost_community_ignore: , Optional (str) bestpath_med_missing_at_worst: , Optional (str) cluster_id: , Optional (str) confederation_identifier: , Optional (str) confederation_peers_as: , 'graceful_restart': , Optional (str) graceful_restart_restart_time: , Optional (str) graceful_restart_stalepath_time: , 'log_neighbor_changes': , Optional (str) router_id: , Optional (str) keepalive_interval: , Optional (str) holdtime: , 'enforce_first_as': , 'fast_external_fallover': , Optional (str) default_choice_ipv4_unicast: , Optional (str) dynamic_med_interval: , Optional (str) shutdown: , 'flush_routes': , 'isolate': , Optional (str) disable_policy_batching_ipv4: , Optional (str) disable_policy_batching_ipv6: , Optional (str) af_name: {Any (str) *: {Optional (str) af_evpn_vni_rt_type: , Optional (str) af_evpn_vni_rt: , Optional (str) af_dampening: , Optional (str) af_dampening_route_map: , Optional (str) af_dampening_half_life_time: , Optional (str) af_dampening_reuse_time: , Optional (str) af_dampening_suppress_time: , Optional (str) af_dampening_max_suppress_time: , Optional (str) af_default_originate: , Optional (str) af_nexthop_route_map: , Optional (str) af_nexthop_trigger_enable: , Optional (str) af_nexthop_trigger_delay_critical: , Optional (str) af_nexthop_trigger_delay_non_critical: , Optional (str) af_client_to_client_reflection: , Optional (str) af_distance_extern_as: , Optional (str) af_distance_internal_as: , Optional (str) af_distance_local: , Optional (str) af_maximum_paths_ebgp: , Optional (str) af_maximum_paths_ibgp: , Optional (str) af_maximum_paths_eibgp: , Optional (str) af_additional_paths_send: , Optional (str) af_additional_paths_receive: , Optional (str) af_aggregate_address_ipv4_address: , Optional (str) af_aggregate_address_ipv4_mask: , Optional (str) af_aggregate_address_as_set: , Optional (str) af_aggregate_address_summary_only: , Optional (str) af_network_number: , Optional (str) af_network_mask: , Optional (str) af_network_route_map: , Optional (str) af_redist_isis: , Optional (str) af_redist_isis_metric: , Optional (str) af_redist_isis_route_policy: , Optional (str) af_redist_ospf: , Optional (str) af_redist_ospf_metric: , Optional (str) af_redist_ospf_route_policy: , Optional (str) af_redist_rip: , Optional (str) af_redist_rip_metric: , Optional (str) af_redist_rip_route_policy: , Optional (str) af_redist_static: , Optional (str) af_redist_static_metric: , Optional (str) af_redist_static_route_policy: , Optional (str) af_redist_connected: , Optional (str) af_redist_connected_metric: , Optional (str) af_redist_connected_route_policy: , Optional (str) af_v6_aggregate_address_ipv6_address: , Optional (str) af_v6_aggregate_address_as_set: , Optional (str) af_v6_aggregate_address_summary_only: , Optional (str) af_v6_network_number: , Optional (str) af_v6_network_route_map: , Optional (str) af_v6_allocate_label_all: , Optional (str) af_retain_rt_all: , Optional (str) af_label_allocation_mode: , Optional (str) af_advertise_pip: }}, Optional (str) neighbor_id: {Any (str) *: {Optional (str) nbr_fall_over_bfd: , Optional (str) nbr_suppress_four_byte_as_capability: , Optional (str) nbr_description: , Optional (str) nbr_disable_connected_check: , Optional (str) nbr_ebgp_multihop: , Optional (str) nbr_ebgp_multihop_max_hop: , Optional (str) nbr_inherit_peer_session: , Optional (str) nbr_local_as_as_no: , Optional (str) nbr_local_as_no_prepend: , Optional (str) nbr_local_as_replace_as: , Optional (str) nbr_local_as_dual_as: , Optional (str) nbr_remote_as: , Optional (str) nbr_remove_private_as: , Optional (str) nbr_shutdown: , Optional (str) nbr_keepalive_interval: , Optional (str) nbr_holdtime: , Optional (str) nbr_update_source: , Optional (str) nbr_password_text: , Optional (str) nbr_transport_connection_mode: , Optional (str) nbr_peer_type: , Optional (str) nbr_inherit_peer: , Optional (str) nbr_af_name: {Any (str) *: {Optional (str) nbr_af_allowas_in: , Optional (str) nbr_af_allowas_in_as_number: , Optional (str) nbr_af_inherit_peer_policy: , Optional (str) nbr_af_inherit_peer_seq: , Optional (str) nbr_af_maximum_prefix_max_prefix_no: , Optional (str) nbr_af_maximum_prefix_threshold: , Optional (str) nbr_af_maximum_prefix_restart: , Optional (str) nbr_af_maximum_prefix_warning_only: , Optional (str) nbr_af_route_map_name_in: , Optional (str) nbr_af_route_map_name_out: , Optional (str) no_nbr_af_route_map_name_in: , Optional (str) no_nbr_af_route_map_name_out: , Optional (str) nbr_af_route_reflector_client: , Optional (str) nbr_af_send_community: , Optional (str) nbr_af_rewrite_evpn_rt_asn: , Optional (str) nbr_af_soft_reconfiguration: , Optional (str) nbr_af_next_hop_self: , Optional (str) nbr_af_as_override: , Optional (str) nbr_af_default_originate: , Optional (str) nbr_af_default_originate_route_map: , Optional (str) nbr_af_soo: }}}}}}}}}, Optional (str) vxlan: {'evpn': {Optional (str) evpn_vni: {Any (str) *: {Optional (str) evpn_vni: , Optional (str) evpn_vni_rd: , Optional (str) evpn_vni_rt: {Any (str) *: {Optional (str) evpn_vni_rt: , Optional (str) evpn_vni_rt_type: }}}}}}}", + "schema": "{'bgp': {'instance': {'default': {'bgp_id': , 'protocol_shutdown': , Optional (str) ps_name: {Any (str) *: {'ps_fall_over_bfd': , 'ps_suppress_four_byte_as_capability': , Optional (str) ps_description: , 'ps_disable_connected_check': , 'ps_ebgp_multihop': , Optional (str) ps_ebgp_multihop_max_hop: , Optional (str) ps_local_as_as_no: , 'ps_local_as_no_prepend': , 'ps_local_as_dual_as': , 'ps_local_as_replace_as': , Optional (str) ps_password_text: , Optional (str) ps_remote_as: , 'ps_shutdown': , Optional (str) ps_keepalive_interval: , Optional (str) ps_hodltime: , Optional (str) ps_transport_connection_mode: , Optional (str) ps_update_source: }}, Optional (str) pp_name: {Any (str) *: {Optional (str) pp_allowas_in: , Optional (str) pp_allowas_in_as_number: , Optional (str) pp_as_override: , Optional (str) pp_default_originate: , Optional (str) pp_default_originate_route_map: , Optional (str) pp_route_map_name_in: , Optional (str) pp_route_map_name_out: , Optional (str) pp_maximum_prefix_max_prefix_no: , Optional (str) pp_maximum_prefix_threshold: , Optional (str) pp_maximum_prefix_restart: , Optional (str) pp_maximum_prefix_warning_only: , Optional (str) pp_next_hop_self: , Optional (str) pp_route_reflector_client: , Optional (str) pp_send_community: , 'pp_soft_reconfiguration': , Optional (str) pp_soo: }}, Optional (str) peer_name: {Any (str) *: {Optional (str) peer_fall_over_bfd: , Optional (str) peer_remote_as: , Optional (str) peer_password_text: , Optional (str) peer_af_name: {Any (str) *: {Optional (str) peer_af_send_community: , Optional (str) peer_maximum_prefix_max_prefix_no: , Optional (str) peer_maximum_prefix_threshold: , Optional (str) peer_maximum_prefix_warning_only: , Optional (str) peer_next_hop_self: }}}}, 'vrf': {Any (str) *: {Optional (str) rd: , Optional (str) always_compare_med: , Optional (str) bestpath_compare_routerid: , Optional (str) bestpath_cost_community_ignore: , Optional (str) bestpath_med_missing_at_worst: , Optional (str) cluster_id: , Optional (str) confederation_identifier: , Optional (str) confederation_peers_as: , 'graceful_restart': , Optional (str) graceful_restart_restart_time: , Optional (str) graceful_restart_stalepath_time: , 'log_neighbor_changes': , Optional (str) router_id: , Optional (str) keepalive_interval: , Optional (str) holdtime: , 'enforce_first_as': , 'fast_external_fallover': , Optional (str) default_choice_ipv4_unicast: , Optional (str) dynamic_med_interval: , Optional (str) shutdown: , 'flush_routes': , 'isolate': , Optional (str) disable_policy_batching_ipv4: , Optional (str) disable_policy_batching_ipv6: , Optional (str) af_name: {Any (str) *: {Optional (str) af_evpn_vni_rt_type: , Optional (str) af_evpn_vni_rt: , Optional (str) af_dampening: , Optional (str) af_dampening_route_map: , Optional (str) af_dampening_half_life_time: , Optional (str) af_dampening_reuse_time: , Optional (str) af_dampening_suppress_time: , Optional (str) af_dampening_max_suppress_time: , Optional (str) af_default_originate: , Optional (str) af_nexthop_route_map: , Optional (str) af_nexthop_trigger_enable: , Optional (str) af_nexthop_trigger_delay_critical: , Optional (str) af_nexthop_trigger_delay_non_critical: , Optional (str) af_client_to_client_reflection: , Optional (str) af_distance_extern_as: , Optional (str) af_distance_internal_as: , Optional (str) af_distance_local: , Optional (str) af_maximum_paths_ebgp: , Optional (str) af_maximum_paths_ibgp: , Optional (str) af_maximum_paths_eibgp: , Optional (str) af_additional_paths_send: , Optional (str) af_additional_paths_receive: , Optional (str) af_aggregate_address_ipv4_address: , Optional (str) af_aggregate_address_ipv4_mask: , Optional (str) af_aggregate_address_as_set: , Optional (str) af_aggregate_address_summary_only: , Optional (str) af_network_number: Or (, ListOf (type) ), Optional (str) af_network_mask: Or (, ListOf (type) ), Optional (str) af_network_route_map: , Optional (str) af_redist_isis: , Optional (str) af_redist_isis_metric: , Optional (str) af_redist_isis_route_policy: , Optional (str) af_redist_ospf: , Optional (str) af_redist_ospf_metric: , Optional (str) af_redist_ospf_route_policy: , Optional (str) af_redist_rip: , Optional (str) af_redist_rip_metric: , Optional (str) af_redist_rip_route_policy: , Optional (str) af_redist_static: , Optional (str) af_redist_static_metric: , Optional (str) af_redist_static_route_policy: , Optional (str) af_redist_connected: , Optional (str) af_redist_connected_metric: , Optional (str) af_redist_connected_route_policy: , Optional (str) af_v6_aggregate_address_ipv6_address: , Optional (str) af_v6_aggregate_address_as_set: , Optional (str) af_v6_aggregate_address_summary_only: , Optional (str) af_v6_network_number: , Optional (str) af_v6_network_route_map: , Optional (str) af_v6_allocate_label_all: , Optional (str) af_retain_rt_all: , Optional (str) af_label_allocation_mode: , Optional (str) af_advertise_pip: }}, Optional (str) neighbor_id: {Any (str) *: {Optional (str) nbr_fall_over_bfd: , Optional (str) nbr_suppress_four_byte_as_capability: , Optional (str) nbr_description: , Optional (str) nbr_disable_connected_check: , Optional (str) nbr_ebgp_multihop: , Optional (str) nbr_ebgp_multihop_max_hop: , Optional (str) nbr_inherit_peer_session: , Optional (str) nbr_local_as_as_no: , Optional (str) nbr_local_as_no_prepend: , Optional (str) nbr_local_as_replace_as: , Optional (str) nbr_local_as_dual_as: , Optional (str) nbr_remote_as: , Optional (str) nbr_remove_private_as: , Optional (str) nbr_shutdown: , Optional (str) nbr_keepalive_interval: , Optional (str) nbr_holdtime: , Optional (str) nbr_update_source: , Optional (str) nbr_password_text: , Optional (str) nbr_transport_connection_mode: , Optional (str) nbr_peer_type: , Optional (str) nbr_inherit_peer: , Optional (str) nbr_af_name: {Any (str) *: {Optional (str) nbr_af_allowas_in: , Optional (str) nbr_af_allowas_in_as_number: , Optional (str) nbr_af_inherit_peer_policy: , Optional (str) nbr_af_inherit_peer_seq: , Optional (str) nbr_af_maximum_prefix_max_prefix_no: , Optional (str) nbr_af_maximum_prefix_threshold: , Optional (str) nbr_af_maximum_prefix_restart: , Optional (str) nbr_af_maximum_prefix_warning_only: , Optional (str) nbr_af_route_map_name_in: , Optional (str) nbr_af_route_map_name_out: , Optional (str) no_nbr_af_route_map_name_in: , Optional (str) no_nbr_af_route_map_name_out: , Optional (str) nbr_af_route_reflector_client: , Optional (str) nbr_af_send_community: , Optional (str) nbr_af_rewrite_evpn_rt_asn: , Optional (str) nbr_af_soft_reconfiguration: , Optional (str) nbr_af_next_hop_self: , Optional (str) nbr_af_as_override: , Optional (str) nbr_af_default_originate: , Optional (str) nbr_af_default_originate_route_map: , Optional (str) nbr_af_soo: }}}}}}}}}, Optional (str) vxlan: {'evpn': {Optional (str) evpn_vni: {Any (str) *: {Optional (str) evpn_vni: , Optional (str) evpn_vni_rd: , Optional (str) evpn_vni_rt: {Any (str) *: {Optional (str) evpn_vni_rt: , Optional (str) evpn_vni_rt_type: }}}}}}}", "source": { "class": "genie.harness.base.Template" }, @@ -10067,7 +10076,7 @@ "generic": { "doc": "Parser for show version", "groups": [], - "schema": "{'os': , Optional (str) os_flavor: , 'version': , Optional (str) platform: , Optional (str) pid: }", + "schema": "{'os': , Optional (str) os_flavor: , 'version': , Optional (str) platform: , Optional (str) pid: , Optional (str) operating_mode: }", "source": { "class": "genie.harness.base.Template" }, diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/__init__.py index ab67a33e5..4c7c17e02 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/__init__.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/__init__.py @@ -7,7 +7,7 @@ ''' # metadata -__version__ = '23.11' +__version__ = '24.2' __author__ = 'Cisco Systems Inc.' __contact__ = ['pyats-support@cisco.com', 'pyats-support-ext@cisco.com'] __copyright__ = 'Copyright (c) 2020, Cisco Systems Inc.' diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py index 90486d8d5..18ce143d6 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/cheetah/ap/execute.py @@ -1,13 +1,17 @@ # Python import logging +import re from unicon.eal.dialogs import Statement, Dialog #unicon from unicon.core.errors import SubCommandFailure, TimeoutError + + # Logger log = logging.getLogger(__name__) +POST_RELOAD_WAIT_TIME=300 def execute_prime_ap(device, controller_ip_address, controller_name): try: @@ -34,3 +38,57 @@ def execute_erase_ap(device): return True +def execute_archive_download(device, image_path, max_timeout=300, username=None, password=None, reload=False): + """ + Downloads image via tftp/http/sftp on AP and reloads the device. + Args: + device(object): device object + image_path(str): path of the image in server + max_timeout(int): the maximum timeout where device can perform the download + username(str): Username of server where image resides + password(str): Password of server where image resides + reload(bool): Device reload if True else no reload + Returns: + bool: True/False + """ + dialog = Dialog([ + Statement(pattern=r'.*Username:\s*$', + action='sendline({})'.format(username), + loop_continue=True, + continue_timer=False), + Statement(pattern=r'.*Password:\s*$', + action='sendline({})'.format(password), + loop_continue=True, + continue_timer=False) + + ]) + reload_dialog = Dialog([ + Statement(pattern=r'.*\[confirm\]', + action='send(\r)', + loop_continue=True, + continue_timer=False), + + ]) + boot_part_before_reload = re.search("BOOT path-list:(\s+\w+)", device.execute("show boot | inc BOOT")).group(1).strip() + output = device.execute("archive download-sw /no-reload {}".format(image_path), timeout=max_timeout, reply=dialog) + if "Successfully setup AP image" in output and "Image download completed" in output: + log.info("Successfully downloaded the image") + else: + log.error("Failed to downloaded the image") + return False + if reload: + try: + device.reload(timeout=max_timeout, reply=reload_dialog, post_reload_wait_time=POST_RELOAD_WAIT_TIME) + device.disconnect() + device.connect() + except (SubCommandFailure, TimeoutError): + log.error("Failed to bring-up device after reload") + return False + else: + boot_part_after_reload = re.search("BOOT path-list:(\s+\w+)", device.execute("show boot | inc BOOT")).group(1).strip() + if boot_part_after_reload == boot_part_before_reload: + log.error("Same boot part loaded after image downloading") + return False + + return True + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/acl/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/acl/configure.py index 313a3628b..8ac95d6c7 100755 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/acl/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/acl/configure.py @@ -2109,4 +2109,45 @@ def configure_ip_acl_with_any(device, acl_name, acl_action): try: device.configure(config) except SubCommandFailure as e: - raise SubCommandFailure(f"Failed to configure ip acl with any on the device {device.name}. Error:\n{e}") \ No newline at end of file + raise SubCommandFailure(f"Failed to configure ip acl with any on the device {device.name}. Error:\n{e}") + +def configure_type_access_list_action(device, type, name, action, action_type=None, action_suffix=None): + """ Configuring ip/mac access-list with permission + Example: Mac access-list extended PACL_MAC_Permit + no permit any any {logging} + permit any any {logging} + or + ip access-list extended PACL_IP_Deny + No Deny ip any any {logging} + Deny ip any any {logging} + Args: + device ('obj'): device to use + type ('str'): (ip | mac) which type it belongs to + name ('str'): name of the ACL to which the entry belongs + action ('str'): (permit | deny) permits or denies traffic + action_type ('str')(optional): defines the action/permission type (Ex : ip) + action_suffix ('str')(optional): suffix that can ass in the last of the command (Ex : logging) + Returns: + None + Raises: + SubCommandFailure + """ + action = action.strip().lower() + if action_type: + if action_suffix: + config = [f"{type} access-list extended {name}", + f"{action} {action_type} any any {action_suffix}"] + else: + config = [f"{type} access-list extended {name}", + f"{action} {action_type} any any"] + else: + if action_suffix: + config = [f"{type} access-list extended {name}", + f"{action} any any {action_suffix}"] + else: + config = [f"{type} access-list extended {name}", + f"{action} any any"] + try: + device.configure(config) + except SubCommandFailure as e: + raise SubCommandFailure(f"Failed to configure {type} acl on the device {device.name}. Error:\n{e}") diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py index a278a8fc5..e7aaf4335 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/apphosting/configure.py @@ -307,17 +307,18 @@ def configure_app_hosting_resource_profile(device, appid, profile_name, cpu=None raise SubCommandFailure(f"Could not configure app-hosting appid resource custom profile. Error {e}") -def unconfigure_app_hosting_appid(device): +def unconfigure_app_hosting_appid(device, appid=''): """ Unconfigure app-hosting appid Args: device ('obj'): device to use + appid ('str'): app-hosting appid Returns: None Raises: SubCommandFailure """ - cmd = f"no app-hosting appid" + cmd = f"no app-hosting appid {appid}" try: device.configure(cmd) except SubCommandFailure as e: diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py index 3d31f7bbb..1ed538cb6 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/cat9k/platform/get.py @@ -40,6 +40,9 @@ def get_boot_variables(device, boot_var, output=None): else: boot_variables = boot_out.get("next_reload_boot_variable") + if boot_variables is None: + boot_variables = boot_out.get("next_reload_boot_variable") + # Trim if boot_variables: for item in boot_variables.split(';'): diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py index a9f6aefca..ab3ea5930 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/custom_template/configure.py @@ -3,12 +3,14 @@ log = logging.getLogger(__name__) -def configure_sdm_prefer_custom_template(device, attribute): +def configure_sdm_prefer_custom_template(device, attribute, custom_template=None, entries=None, priority=None): """ Configure SDM Prefer Custom Template Args: device ('obj'): device to use attribute ('str'): sdm prefer custom template value (Ex : commit, vlan) - + custom_template ('str'): sdm prefer custom template value (Ex : pbr) + entries('int'): number of entries + priority('int'): priority number Returns: None Raises: @@ -17,9 +19,12 @@ def configure_sdm_prefer_custom_template(device, attribute): log.info( "Configuring SDM Prefer Custom Template with attribute={}".format(attribute) ) - + config = [f"sdm prefer custom {attribute}"] + if custom_template and entries and priority: + config.append(f"{custom_template} {entries} priority {priority}") + try: - device.configure(["sdm prefer custom {}".format(attribute),]) + device.configure(config) except SubCommandFailure: raise SubCommandFailure( @@ -82,4 +87,4 @@ def configure_sdm_prefer(device, template): try: device.configure(config) except SubCommandFailure as e: - raise SubCommandFailure(f"Could not configure sdm prefer. Error:\n{e}") + raise SubCommandFailure(f"Could not configure sdm prefer. Error:\n{e}") \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dhcp/execute.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dhcp/execute.py index ccf0fcb3b..6b17ee73f 100755 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dhcp/execute.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/dhcp/execute.py @@ -58,4 +58,21 @@ def clear_ipv6_dhcp_binding(device): raise SubCommandFailure( f'Failed to clear DHCPv6 server statistics\n{e}' ) - + +def clear_ip_dhcp_snooping_statistics(device): + """execute 'clear ip dhcp snooping statistics' on device + Args: + device('obj'): device object + Returns: + None + Raises: + SubCommandFailure + """ + log.debug("Executing clear_ip_dhcp_snooping_statistics API") + + try: + device.execute("clear ip dhcp snooping statistics") + except SubCommandFailure as e: + raise SubCommandFailure( + f'Failed to clear dhcp snooping statistics\n{e}' + ) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/firmware_version/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/firmware_version/get.py index 95cdd6c0b..43c6c940b 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/firmware_version/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/firmware_version/get.py @@ -22,7 +22,49 @@ def get_firmware_version(device): """ output = {} + comp_list = [] + deci_name_list = [] + str_name_list = [] + deci_fw_list = [] + str_fw_list = [] + + def firmware_version_per_switch(device, cli, model_num, switch=''): + fw_list = [] + + try: + output_fw = device.parse(cli.format(switch=switch)) + except SchemaEmptyParserError as e: + return [] + except Exception as e: + log.error(cli+": {e}".format(e=e)) + return None + + out_index = output_fw.get("index", {}) + + for index in out_index: + name = output_fw["index"][index].get('name') + + if 'PowerSupplyModule' in name and model_num==96: + if switch: + name = 'PowerSupplyModule' + str(switch) + '/' + name[len('PowerSupplyModule'):] + fw = '(N/A, N/A, N/A)' + continue + else: + fw = dict(output_fw["index"][index]).get('fw_version','NULL') + if fw == 'unknown': + fw = 'NULL' + + if switch: + if 'FanTray' in name: + name = 'Fan' + str(switch) + '/' + 'Tray' + elif 'Supervisor' in name: + name = 'Switch ' + str(switch) + ' ' + name + + fw_list.append({name:fw}) + return fw_list + + # Parse show version to get model number try: output = device.parse("show version") except SchemaEmptyParserError as e: @@ -41,29 +83,33 @@ def get_firmware_version(device): if model_num not in [96,94]: log.error("Not a supported model (Supported models are 9600, 9400 series)") return None - - deci_name_list = [] - str_name_list = [] - deci_fw_list = [] - str_fw_list = [] - + + # Parse show switch to get switches in stack to run firmware CLI try: - output_fw = device.parse("show firmware version all") + output_switch = device.parse("show switch") + out_stack = output_switch.get("switch", {}).get("stack", {}) + except SchemaEmptyParserError as e: + out_stack = [1] + except SchemaMissingKeyError as e: + log.error("Missing key while parsing 'show version': {e}".format(e=e)) except Exception as e: - log.error("Failed to parse 'show firmware version all': {e}".format(e=e)) - return None - - out_index = output_fw.get("index", {}) + log.error("Failed to parse 'show version': {e}".format(e=e)) - for index in out_index: - name = output_fw["index"][index].get('name') + if len(out_stack) > 1: + fw_cli = "show firmware version switch {switch} all" + for switch in out_stack: + comp_list = firmware_version_per_switch(device, fw_cli, model_num, switch) - if 'PowerSupplyModule' in name and model_num==96: - str_name_list.append(name) - str_fw_list.append('(N/A, N/A, N/A)') - continue - else: - fw = dict(output_fw["index"][index]).get('fw_version','NULL') + elif len(out_stack) == 1: + fw_cli = "show firmware version all" + comp_list += firmware_version_per_switch(device, fw_cli, model_num) + + # Get components in show module output + comp_list += get_module(device) + + for comp in comp_list: + name = list(comp.keys())[0] + fw = list(comp.values())[0] if (fw.strip()).replace('.', '',1).isdigit(): deci_name_list.append(name) @@ -71,28 +117,53 @@ def get_firmware_version(device): else: str_name_list.append(name) str_fw_list.append(fw) - + + return {"name":[deci_name_list,str_name_list], "firmware_version":[deci_fw_list,str_fw_list]} + +def get_module(device): + + """ + Get componenets' firmware version from show module output + Args: + device (`obj`): Device object + Returns: + Dictionary: List of components' firmware dict + example: [ + {: }, + {: } + ] + Raises: + None + """ + comp_list = [] + try: output_mod = device.parse("show module") # Show module to get line card infos + except SchemaMissingKeyError as e: + log.error("Missing key while parsing 'show module': {e}".format(e=e)) except Exception as e: log.error("Failed to parse 'show module': {e}".format(e=e)) - return None out_mod = output_mod.get("module", {}) - - for module in out_mod: - model = output_mod["module"][module].get('model') - if '-LC-' in model: - name = 'Slot '+str(module)+ ' Linecard' - fw = dict(output_mod["module"][module]).get('fw','NULL') + def model_output_processing(data, switch=''): + mod_list = [] + for module in out_mod: + model = output_mod["module"][module].get('model') + if '-LC-' in model: + name = 'Slot '+str(module)+ ' Linecard' - if (fw.strip()).replace('.', '',1).isdigit(): - deci_name_list.append(name) - deci_fw_list.append(fw) - else: - str_name_list.append(name) - str_fw_list.append(fw) + if switch: + name = 'Switch ' + str(switch) + ' ' + name - return {"name":[deci_name_list,str_name_list], "firmware_version":[deci_fw_list,str_fw_list]} + fw = dict(output_mod["module"][module]).get('fw','NULL') + mod_list.append({name:fw}) + + return mod_list + if 'switches' not in out_mod: + return model_output_processing(out_mod) + else: + for switch, data in out_mod.items(): + comp_list += model_output_processing(data, switch=switch) + return comp_list diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/flow/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/flow/configure.py index 9ac388420..e49647e2f 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/flow/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/flow/configure.py @@ -1346,7 +1346,17 @@ def configure_fnf_flow_record( match_transport_field = None, address_mode = None, tcp_field = False, - collect_event = False + collect_event = False, + application_name = False, + connection_type = None, + connection_address_type = None, + observation_point = False, + collect_timestamp = None, + flow_direction = False, + initiator = False, + new_connections = False, + connection_counter = None + ): """ Config Flow Record on Device @@ -1364,6 +1374,15 @@ def configure_fnf_flow_record( address_mode('str', optional): Address mode to be configured tcp_field('bool'): Configure collect transport tcp flags collect_event('bool'): Configure collect policy firewall event + application_name('bool'): Configure application name + connection_type('str', optional): connection type to be configured + connection_address_type('str', optional): connection address type to be configured + observation_point('bool'): Configure observation point + collect_timestamp('str', optional): timestamp to be configured + flow_direction('bool'): Configure flow direction + initiator('bool'): Configure initiator + new_connections('bool'): Configure new connections + connection_counter('str', optional): connection bytes to be configured Return: None @@ -1391,6 +1410,24 @@ def configure_fnf_flow_record( configs.extend([f'collect transport tcp flags']) if collect_event: configs.extend([f'collect policy firewall event']) + if application_name: + configs.extend(['match application name']) + if connection_type and connection_address_type: + configs.extend([f'match connection {connection_type} {connection_address_type} address']) + if connection_type: + configs.extend([f'match connection {connection_type} transport port']) + if observation_point: + configs.extend(['match flow observation point']) + if collect_timestamp: + configs.extend([f'collect timestamp absolute {collect_timestamp}']) + if flow_direction: + configs.extend(['collect flow direction']) + if initiator: + configs.extend(['collect connection initiator']) + if new_connections: + configs.extend(['collect connection new-connections']) + if connection_type and connection_counter: + configs.extend([f'collect connection {connection_type} counter {connection_counter} long']) try: device.configure(configs) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/hw_module/execute.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/hw_module/execute.py index dab85d290..5875fcecd 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/hw_module/execute.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/hw_module/execute.py @@ -55,3 +55,18 @@ def hw_module_sub_slot_reload(device, sub_slot): .format(slot=sub_slot, error=e) ) +def hw_module_filesystem_security_lock(device, filesystem, operation): + """ Enable/Disable Security-lock on filesystem bootflash/harddisk + Args: + device ('obj'): Device object + filesystem('str'): Filesystem (bootflash/harddisk) + operation('str'): Enable/Disable + + """ + + cmd = f"hw-module {filesystem} security-lock {operation}" + try: + output = device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure(f"Failed to {operation} security-lock on filesystem:{filesystem}. Error:\n{e}") + return output diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py index 07b6a29f7..4d7f0c8d7 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/igmp_snooping/configure.py @@ -368,4 +368,109 @@ def configure_ip_igmp_querier_tcn_query_count(device, query_type, action_type, q device.configure(cmd) except SubCommandFailure as e: log.error(e) - raise SubCommandFailure(f"Could not configure ip igmp snooping querier tcn query count 10. Error:\n{e}") \ No newline at end of file + raise SubCommandFailure(f"Could not configure ip igmp snooping querier tcn query count 10. Error:\n{e}") + +def unconfigure_ip_igmp_querier_query_interval(device, query_type, query_interval): + """ + Unconfigure ip igmp snooping querier query-interval 100 + + Args: + device('obj'): Device object + query_type('str'): query-interval IGMP querier query interval (sec) + query_interval('int'): <1-18000> IGMP querier query interval (sec) + + Returns: + None + + Raises: + SubCommandFailure + """ + cmd = f"no ip igmp snooping querier {query_type} {query_interval}" + try: + device.configure(cmd) + except SubCommandFailure as e: + log.error(e) + raise SubCommandFailure(f"Could not unconfigure ip igmp snooping querier query-interval. Error:\n{e}") + +def unconfigure_ip_igmp_querier_max_response_time(device, query_type, query_time): + """ + Unconfigure ip igmp snooping querier max response time 25 + + Args: + device('obj'): Device object + query_type('str'): max-response-time IGMP querier max response time (sec) + query_time('int'): <1-500> IGMP querier query response time (sec) + + Returns: + None + + Raises: + SubCommandFailure + """ + cmd = f"no ip igmp snooping querier {query_type} {query_time}" + try: + device.configure(cmd) + except SubCommandFailure as e: + log.error(e) + raise SubCommandFailure(f"Could not unconfigure ip igmp snooping querier max response time 25. Error:\n{e}") + +def unconfigure_ip_igmp_querier_tcn_query_count(device, query_type, action_type, query_count): + """ + Unconfigure ip igmp snooping querier tcn query count 10 + Args: + device('obj'): Device object + query_type('str'):tcn IGMP querier TCN related parameters + action_type('str'): count IGMP querier TCN query count + query_count('int'):<1-10> IGMP querier TCN query count + + Returns: + None + Raises: + SubCommandFailure + """ + cmd = f"no ip igmp snooping querier {query_type} query {action_type} {query_count}" + try: + device.configure(cmd) + except SubCommandFailure as e: + log.error(e) + raise SubCommandFailure(f"Could not unconfigure ip igmp snooping querier tcn query count 10. Error:\n{e}") + +def unconfigure_ip_igmp_querier_tcn_query_interval(device, query_type, action_type, query_interval): + """ + Unconfigure ip igmp snooping querier tcn query interval 255 + Args: + device('obj'): Device object + query_type('str'):tcn IGMP querier TCN related parameters + action_type('str'): interval IGMP querier TCN query interval + query_interval('int'):<1-500> IGMP querier TCN query count (sec) + + Returns: + None + Raises: + SubCommandFailure + """ + cmd = f"no ip igmp snooping querier {query_type} query {action_type} {query_interval}" + try: + device.configure(cmd) + except SubCommandFailure as e: + log.error(e) + raise SubCommandFailure(f"Could not unconfigure ip igmp snooping querier tcn query count 10. Error:\n{e}") + +def unconfigure_ip_igmp_querier_timer_expiry(device, query_time): + """ + Unconfigure ip igmp snooping querier timer expiry 300 + Args: + device('obj'): Device object + query_time('int'):<1-500> IGMP querier timer expiry count (sec) + + Returns: + None + Raises: + SubCommandFailure + """ + cmd = f"no ip igmp snooping querier timer expiry {query_time}" + try: + device.configure(cmd) + except SubCommandFailure as e: + log.error(e) + raise SubCommandFailure(f"Could not unconfigure ip igmp snooping querier timer expiry 300. Error:\n{e}") \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py index 487510823..e21577e9b 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/configure.py @@ -1217,10 +1217,12 @@ def configure_interface_switchport_access_vlan(device, interface, vlan,mode=None config_list = [] config_list.append("interface {interface}".format(interface=interface)) + config_list.append("switchport") if mode: config_list.append("switchport mode {mode}".format(mode=mode)) config_list.append("switchport access vlan {vlan}".format(vlan=vlan)) + try: device.configure(config_list) @@ -1231,7 +1233,6 @@ def configure_interface_switchport_access_vlan(device, interface, vlan,mode=None ) ) - def unconfigure_interface_switchport_access_vlan(device, interface, vlan): """ Unconfigures switchport on interface @@ -4400,7 +4401,8 @@ def configure_virtual_template(device, ipv6_mtu='', no_ip_redirects=False, no_peer_ip=False, - pool_name=None): + pool_name=None, + ipv6_pool_name=None): """ Configure virtual-template interface Args: @@ -4417,6 +4419,7 @@ def configure_virtual_template(device, no_ip_redirects('bool', optional): no ip redirects option no_peer_ip('bool', optional): no peer ip default option pool_name('string', optional): peer default ip address pool + ipv6_pool_name('string', optional): peer default ipv6 pool For the arguments that are optional, the default value is None. Returns: @@ -4447,6 +4450,8 @@ def configure_virtual_template(device, cli.append("no peer default ip address") if pool_name: cli.append(f"peer default ip address pool {pool_name}") + if ipv6_pool_name: + cli.append(f"peer default ipv6 pool {ipv6_pool_name}") try: device.configure(cli) @@ -4952,13 +4957,15 @@ def unconfigure_port_channel_standalone_disable(device,port_channel_num): ) -def configure_pppoe_enable_interface(device, interface, name, dial_pool_num=None): +def configure_pppoe_enable_interface(device, interface, name, dial_pool_num=None, + ppp_max_payload=None): """ Configure pppoe enable group on interface Args: device (`obj`): Device object interface (`str`): Interface name name (`str`): pppoe/bba group name dial_pool_num ('str'): pppoe-client dial-pool-member + ppp_max_payload ('str', optional): pppoe-client ppp-max-payload Returns: None Raises: @@ -4972,6 +4979,8 @@ def configure_pppoe_enable_interface(device, interface, name, dial_pool_num=None cli.append(f"pppoe enable group {name}") if dial_pool_num: cli.append(f"pppoe-client dial-pool-number {dial_pool_num}") + if ppp_max_payload: + cli.append(f"pppoe-client ppp-max-payload {ppp_max_payload}") try: device.configure(cli) @@ -4980,12 +4989,14 @@ def configure_pppoe_enable_interface(device, interface, name, dial_pool_num=None f"Could not configure pppoe group on device. Error:\n{str(error)}" ) -def unconfigure_pppoe_enable_interface(device, interface, name, dial_pool_num=None): +def unconfigure_pppoe_enable_interface(device, interface, name, dial_pool_num=None, + ppp_max_payload=None): """ Configure pppone enable group on interface Args: device (`obj`): Device object interface (`str`): Interface name name (`str`): pppoe/bba group name + ppp_max_payload ('str', optional): no pppoe-client ppp-max-payload Returns: None @@ -5000,6 +5011,8 @@ def unconfigure_pppoe_enable_interface(device, interface, name, dial_pool_num=No cli.append(f"no pppoe enable group {name}") if dial_pool_num: cli.append(f"no pppoe-client dial-pool-number {dial_pool_num}") + if ppp_max_payload: + cli.append(f"no pppoe-client ppp-max-payload {ppp_max_payload}") try: device.configure(cli) @@ -9636,3 +9649,158 @@ def unconfigure_interface_speed(device, interface): except SubCommandFailure as e: raise SubCommandFailure(f"Could not unconfigure speed on {interface}. Error:\n{e}") +def configure_ip_on_atm_interface( + device, + interface, + vpi_vci, + vlan_id=None, + ip_address=None, + mask=None, + ipv6_address=None, + atm_encap_type=None, + protocol=None, + dialer_num=None, + atm_qos=None, + pcr="", + scr="", + bc=""): + """ Configure IP on an atm interface + Args: + device (`obj`): Device object + interface (`str`): Interface to get address + vpi_vci ('str'): atm vpi/vci value + vlan_id ('str', optional): sub-interface number, eg: interface ATM0/3/0.213 point-to-point + ip_address (`str`, optional): IP addressed to be configured on interface, default value None + mask (`str`, optional): Mask address to be used in configuration, default value None + ipv6_address (`str`, optional): IPv6 address with subnet mask, default value None + atm_encap_type (`str`, optional): Encapsulation type, default value None + protocol (`str`, optional): atm pvc protocol type, eg: ppp, pppoe-client + dialer_num (`str`, optional): dialer pool number, default value None + atm_qos ('str', optional): ATM PVC qos eg: vbr-rt, vbr-nrt, cbr + pcr ('str', optional): pcr in string; default value "" + scr ('str', optional): scr in string; default value "" + bc ('str', optional): bc in string; default value "" + Returns: + None + Warning messages + Raises: + SubCommandFailure + """ + + # Get interface name + if vlan_id: + interface_name = f"{interface}.{vlan_id}" + else: + interface_name = interface + + # Build config list + cfg_lst = [] + cfg_lst.append(f"interface {interface_name} point-to-point") + + if ip_address and mask: + cfg_lst.append(f"ip address {ip_address} {mask}") + + if ipv6_address: + cfg_lst.append(f"ipv6 enable") + cfg_lst.append(f"ipv6 address {ipv6_address}") + + if vpi_vci: + cfg_lst.append(f"pvc {vpi_vci}") + + if dialer_num and protocol == 'pppoe-client': + if atm_encap_type == 'aal5mux': + cfg_lst.append(f"encapsulation {atm_encap_type} pppoe-client") + cfg_lst.append(f"dialer pool-member {dialer_num}") + if atm_encap_type == 'aal5snap': + cfg_lst.append(f"encapsulation {atm_encap_type}") + cfg_lst.append(f"pppoe-client dial-pool-number {dialer_num}") + else: + cfg_lst.append(f"pppoe-client dial-pool-number {dialer_num}") + + if protocol == 'ppp': + if atm_encap_type == 'aal5mux': + cfg_lst.append("encapsulation aal5mux ppp dialer") + elif atm_encap_type == 'aal5snap': + cfg_lst.append("encapsulation aal5snap") + cfg_lst.append("protocol ppp dialer") + else: + cfg_lst.append("protocol ppp dialer") + if dialer_num: + cfg_lst.append(f"dialer pool-member {dialer_num}") + + if atm_qos and pcr and scr and bc: + cfg_lst.append(f"{atm_qos} {pcr} {scr} {bc}") + elif atm_qos and pcr: + cfg_lst.append(f"{atm_qos} {pcr}") + + + # Configure device + try: + out = device.configure(cfg_lst) + except SubCommandFailure as e: + raise SubCommandFailure( + "Failed to configure IP address {ip} on interface " + "{interface} on device {dev}. Error:\n{error}".format( + ip=ip_address, + interface=interface_name, + dev=device.name, + error=e, + ) + ) + +def unconfigure_ip_on_atm_interface( + device, + interface, + vpi_vci=None, + vlan_id=None, + ip_address=None, + mask=None, + ipv6_address=None): + """ Unconfigure IP on an atm interface + Args: + device (`obj`): Device object + interface (`str`): Interface to get address + vpi_vci ('str'): atm vpi/vci value + vlan_id ('str', optional): sub-interface number, eg: interface ATM0/3/0.213 point-to-point + ip_address (`str`, optional): IP addressed to be configured on interface, default value None + mask (`str`, optional): Mask address to be used in configuration, default value None + ipv6_address (`str`, optional): IPv6 address with subnet mask, default value None + Raises: + SubCommandFailure + """ + + # Get interface name + if vlan_id: + interface_name = f"{interface}.{vlan_id}" + else: + interface_name = interface + + # Build config list + cfg_lst = [] + cfg_lst.append(f"interface {interface_name} point-to-point") + + if ip_address and mask: + cfg_lst.append(f"no ip address {ip_address} {mask}") + + if ipv6_address: + cfg_lst.append(f"no ipv6 enable") + cfg_lst.append(f"no ipv6 address {ipv6_address}") + + if vpi_vci: + cfg_lst.append(f"no pvc {vpi_vci}") + + + # Configure device + try: + out = device.configure(cfg_lst) + except SubCommandFailure as e: + raise SubCommandFailure( + "Failed to unconfigure IP address {ip} on interface " + "{interface} on device {dev}. Error:\n{error}".format( + ip=ip_address, + interface=interface_name, + dev=device.name, + error=e, + ) + ) + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/get.py index 541e9a6c3..ebf72dffc 100755 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/get.py @@ -1016,7 +1016,7 @@ def get_interface_information(device, interface_list): except SchemaEmptyParserError: empty_ints.append(interface) data = None - results[interface] = data + results.update({interface: data[interface]}) if empty_ints: log.error('No interface information found for {}'.format(empty_ints)) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py index 6ad5cebd5..bde9c06e9 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/interface/verify.py @@ -1181,6 +1181,8 @@ def verify_interface_config_duplex(device, timeout.sleep() return False + + def verify_tunnel_protection( device, interface, max_time=5, @@ -1224,4 +1226,62 @@ def verify_tunnel_protection( device, protection.lower() == tunnel_protection.lower(): return True timeout.sleep() - return False \ No newline at end of file + return False + +def verify_interface_capabilities_multiple_media_types(device, interface, expected_multiple_media_types): + """Verify interface capabilities multiple_media_types in - show interfaces capabilities', 'show interfaces {interface} capabilities' + Args: + device (`obj`): Device object + interface (`str`): Interface name + expected_multiple_media_types (`str`): 'rj45 - interface type supporting copper connection. + 'sfp, - interface type supporting fiber connection. + 'rj45 , 'sfp', 'auto-select' - interface type supporting both fiber and copper connection. + + Returns: + result(`bool`): verify result + """ + cmd = f"show interfaces {interface} capabilities" + try: + out = device.parse(cmd) + except Exception as e: + log.error(f"Not able to get show interfaces capabilities. Error:\n{e}") + + media_types = out['interface'][interface]["multiple_media_types"] + + message = f'Expected interface multiple_media_type not found. Instead, interface is {media_types} configuration found!' + if result := media_types == expected_multiple_media_types: + if media_types == 'rj45, sfp, auto-select': + message = "It's a Combo Interface: Supports both fiber and copper connections" + elif media_types == 'sfp': + message = "It's SFP Interface: Supports fiber connection and Copper SFP connections" + elif media_types == 'rj45': + message = "It's a Copper Interface(fixed copper): Supports only copper connection" + + log.debug(message) + + return result + +def verify_interfaces_transceiver_supported( + device, transceivers_list +): + """Verify if the list of transceivers are supported or not + + Args: + device (`obj`): Device object + transceivers (`list`): List of transceivers to check + + Returns: + result(`bool`): True if supported else False + """ + out = device.parse("show interfaces transceiver supported-list") + + supported_transceivers = {} + for transceiver in transceivers_list: + if transceiver in out['transceiver_type']: + log.debug(f"Transceiver {transceiver} is supported") + return True + else: + log.debug(f"Transceiver {transceiver} is not supported") + + return False + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/lacp/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/lacp/configure.py index 9402d8957..33c83bdfe 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/lacp/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/lacp/configure.py @@ -187,4 +187,27 @@ def unconfigure_port_channel_mode(device, mode): try: device.configure(cmd) except SubCommandFailure as e: - raise SubCommandFailure(f"Failed to unconfigure port channel mode. Error:\n{e}") \ No newline at end of file + raise SubCommandFailure(f"Failed to unconfigure port channel mode. Error:\n{e}") + + +def clear_lacp_counters(device, channel_group=None): + """ clear lacp counters + + Args: + device ('obj'): Device object + channel_group ('int', optional): Channel group number. Default is None + + Return: + None + Raises: + SubCommandFailure + """ + if channel_group: + cmd = f'clear lacp {channel_group} counters' + else: + cmd = f'clear lacp counters' + + try: + device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure(f"Failed to clear lacp counters. Error:\n{e}") diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py index 6530c1fe0..b6db46f53 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/management/configure.py @@ -1,10 +1,14 @@ import re +import uuid +import atexit import logging import ipaddress +import tempfile from unicon.eal.dialogs import Dialog from genie.utils.timeout import Timeout from unicon.core.errors import SubCommandFailure from pyats.utils.secret_strings import to_plaintext +from pyats.topology import loader log = logging.getLogger(__name__) @@ -986,26 +990,138 @@ def unconfigure_management_netconf(device): except SubCommandFailure as e: raise SubCommandFailure(f"Failed to unconfigure netconf-yang on device {device}. Error:\n{e}") - -def configure_management_gnmi(device, enable=True, server=True, port=None, **kwargs): +def configure_management_gnmi(device, + enable=True, + server=True, + port=None, + secure_server=False, + secure_client_auth=False, + secure_trustpoint='trustpoint1', + password='', + aes=True, + rsa_key_size=2048, + local_path='flash:/', + **kwargs): ''' Configure device for management via gnmi. + When secure_server is True, this API will generate keys and certificates using openssl + for use on the device and by the gNMI connection class. It will install + the key and certificates on the device and update the gnmi connection with + the paths to the files generated. + Args: device ('obj'): device object enable ('bool', optional): Enable and start GNxI. Default is True. server ('bool', optional): Enable the GNxI (insecure) server. Default is True. port ('int', optional): gnxi (insecure) server port. Default is None. + secure_server ('bool', optional): Enable the GNxI secure server. Default to False. + secure_client_auth ('bool', optional): Enable client authentication. Default to False. + secure_trustpoint ('str', optional): Set GNxI server certificate trustpoint. Default to 'trustpoint1'. + password ('str', optional): rsa_ssl key generation password Default is ''. + aes ('bool', optional): Use AES encryption if True, else use 3DES. Default to True. + rsa_key_size ('int', optional): rsa_key_size value to be used for rsakeypair generation. Default to 2048. + local_path ('str', optional): Device path where pkcs12 file will be copied. Default to flash:/. Returns: None ''' + if secure_server: + + # connect to the linux server + tb = loader.load({ + 'devices': { + 'linux': { + 'os': 'linux', + 'credentials': {'default': {'username': ''}}, + 'connections': { + 'cli': { + 'command': 'bash' + } + } + } + } + }) + dev = tb.devices.linux + dev.connect(log_buffer=True) + + # To handle password, If not given generate a random password + if not password: + # make a random UUID + password = uuid.uuid4() + + # To create temp dir + tmpdir_obj = tempfile.TemporaryDirectory() + + # atexit to cleanup the temp dir when exiting python env + atexit.register(tmpdir_obj.cleanup) + + # Move to the temp dir + tmpdirname = tmpdir_obj.name + dev.execute([f'cd {tmpdirname}']) + + # default subject with the device name for ssl certificates + subject = f"/C=/ST=/L=/O=/CN={device.name}" + + # Generate rsa ssl key (rootCA.key) + dev.api.generate_rsa_ssl_key(private_key_name='rootCA.key', aes=aes) + + # Generate CA certificate (rootCA.pem) + dev.api.generate_ca_certificate(private_key_file='rootCA.key', certificate_name='rootCA.crt') + + # Generate device key (device.key) + dev.api.generate_rsa_ssl_key(private_key_name='device.key', password=password, aes=aes) + + # Generate ssl certificate (device.crt and device.csr) + dev.api.generate_ssl_certificate(device_key_file='device.key', ca_certificate_file='rootCA.crt', private_key_file='rootCA.key',\ + subject=subject, device_key_password=password, csr_name= 'device.csr', crt_name='device.crt') + + # Generate pkcs12 file (device.p12) with device.key, device.crt and rootCA.crt + dev.api.generate_pkcs12(device_key_file='device.key', device_cert_file='device.crt', root_cert_file='rootCA.crt', output_pkcs12_file='device.p12',\ + passin_password=password, passout_password=password) + + # Copy pkcs file to the device + device.api.copy_to_device(f'{tmpdirname}/device.p12', local_path=local_path) + + # Install certificates on the device through the cli + device.api.configure_pki_import(tp_name=secure_trustpoint, file_password=password, pkcs_file='device.p12', import_type='pkcs12') + + # Revocation check + device.api.configure_trustpoint(tp_name=secure_trustpoint, revoke_check='none', rsa_key_size=rsa_key_size) + + # gnmi secure connection information + gnmi_connection_info_dict = { + 'root_certificate': f'{tmpdirname}/rootCA.crt', + 'ssl_name_override': device.name + } + + # if secure client authentication is enabled. Then user needs to provide private key and certificate chain + if secure_client_auth: + # Generate client key (client.key) + dev.api.generate_rsa_ssl_key(private_key_name='client.key', aes=aes) + + # Generate client certificate (client.crt and client.csr) + dev.api.generate_ssl_certificate(device_key_file='client.key', ca_certificate_file='rootCA.crt', private_key_file='rootCA.key',\ + subject=subject, csr_name='client.csr', crt_name='client.crt') + + gnmi_connection_info_dict.update({ + 'private_key': f'{tmpdirname}/client.key', + 'certificate_chain': f'{tmpdirname}/client.crt', + }) + + # update the testbed object gnmi connection with root_certificate, private_key, certificate_chain and ssl_name_override + device.connections.gnmi.update(gnmi_connection_info_dict) + try: device.api.configure_gnxi( device=device, enable=enable, server=server, - port=port + port=port, + secure_server=secure_server, + secure_client_auth=secure_client_auth, + secure_trustpoint=secure_trustpoint if secure_server else None ) except SubCommandFailure as e: raise SubCommandFailure(f"Failed to configure gnmi on device {device}. Error:\n{e}") + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py old mode 100644 new mode 100755 index d2a5ac5f8..f3315a697 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/mdns/configure.py @@ -1789,4 +1789,193 @@ def unconfigure_mdns_trust(device, interface): "Could not unconfigure mdns_trust {e}" ) - + +def clear_mdns_cache_remote(device): + """ Clears mdns remote cache on device + Args: + device ('obj'): device to use + Returns: + None + Raises: + SubCommandFailure + """ + try: + device.execute("clear mdns-sd cache remote") + + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not clears mdns remote cache. Error:\n{error}".format(error=e) + ) + +def configure_mdns_remote_cache_enable(device): + """ Enable mDNS(Multicast Domain Name System) remote cache + Args: + device ('obj'): device to use + Returns: + None + Raises: + SubCommandFailure: Failed enabling mdns remote cache + """ + log.debug(" Enabling mdns-sd remote cache") + + try: + device.configure([ + "mdns-sd gateway" , + "remote-cache-enable" + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not enable mdns remote cache {e}" + ) + +def unconfigure_mdns_remote_cache_enable(device): + """ Disable mDNS(Multicast Domain Name System) remote cache + Args: + device ('obj'): device to use + Returns: + None + Raises: + SubCommandFailure: Failed disabling mdns remote cache + """ + log.debug(" Disabling mdns-sd remote cache") + + try: + device.configure([ + "mdns-sd gateway" , + "no remote-cache-enable" + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not disable mdns remote cache {e}" + ) + +def configure_mdns_remote_cache_max_limit(device, limit): + """ Configure mDNS(Multicast Domain Name System) remote cache max limit + Args: + device ('obj'): device to use + limit ('int'): remote cache maximum service-instance limit + Returns: + None + Raises: + SubCommandFailure: Failed configuring mdns remote cache max limit + """ + log.debug(" Configuring mdns-sd remote cache max limit") + + try: + device.configure([ + "mdns-sd gateway" , + "remote-cache-max-limit {}".format(limit) + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not configure mdns remote cache max limit {e}" + ) + +def unconfigure_mdns_remote_cache_max_limit(device): + """ Unconfigure mDNS(Multicast Domain Name System) remote cache max limit + Args: + device ('obj'): device to use + Returns: + None + Raises: + SubCommandFailure: Failed unconfiguring mdns remote cache max limit + """ + log.debug(" Unconfiguring mdns-sd remote cache max limit") + + try: + device.configure([ + "mdns-sd gateway" , + "no remote-cache-max-limit" + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not unconfigure mdns remote cache max limit {e}" + ) + +def configure_mdns_remote_purge_timer(device, timer): + """ Configure mDNS(Multicast Domain Name System) remote cache purge timer + Args: + device ('obj'): device to use + timer ('int'): remote cache purge timer value + Returns: + None + Raises: + SubCommandFailure: Failed configuring mdns remote purge timer + """ + log.debug(" Configuring mdns-sd remote cache purge timer") + + try: + device.configure([ + "mdns-sd gateway" , + "remote-cache-purge-timer {}".format(timer) + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not configure mdns remote cache purge timer {e}" + ) + +def unconfigure_mdns_remote_purge_timer(device): + """ unconfigure mDNS(Multicast Domain Name System) remote cache purge timer + Args: + device ('obj'): device to use + Returns: + None + Raises: + SubCommandFailure: Failed unconfiguring mdns remote purge timer + """ + log.debug(" Unconfiguring mdns-sd remote cache purge timer") + + try: + device.configure([ + "mdns-sd gateway" , + "no remote-cache-purge-timer" + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not unconfigure mdns remote cache purge timer {e}" + ) + +def configure_mdns_global_service_buffer(device, controllername, mode): + """ Configure mDNS(Multicast Domain Name System) global service-buffer + Args: + device ('obj'): device to use + controllername ('str'): controller name + mode ('str'): enable/disable + Returns: + None + Raises: + SubCommandFailure: Failed configuring mdns global service-buffer + """ + log.debug(" Configuring mdns-sd global service-buffer") + + try: + device.configure([ + "service-export mdns-sd controller {ctrlName}".format(ctrlName=controllername), + "global-service-buffer {mde}".format(mde=mode) + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not configure mdns global service-buffer {e}" + ) + +def unconfigure_mdns_global_service_buffer(device, controllername): + """ unconfigure mDNS(Multicast Domain Name System) global service-buffer + Args: + device ('obj'): device to use + controllername ('str'): controller name + Returns: + None + Raises: + SubCommandFailure: Failed unconfiguring mdns global service-buffer + """ + log.debug(" Unonfiguring mdns-sd global service-buffer") + + try: + device.configure([ + "service-export mdns-sd controller {ctrlName}".format(ctrlName=controllername), + "no global-service-buffer" + ]) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not unconfigure mdns global service-buffer {e}" + ) \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py index 8171f0417..36b789aa4 100755 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/pki/configure.py @@ -710,21 +710,22 @@ def configure_pki_import(device, SubCommandFailure ''' + logger.debug("Configuring crypto pki import") dialog = Dialog([ - Statement(pattern=r'.*Source filename.*', - action='sendline(\r)', + Statement(pattern=r'.*Source filename \[.*?\]\?\s*$', + action='sendline()', loop_continue=True, continue_timer=False), Statement(pattern=r'.*the hierarchy.*', action=f'sendline({is_hierarchy})', loop_continue=True, continue_timer=False), - Statement(pattern=r'.*End with a blank line or the word "quit" on a line by itself.*', + Statement(pattern=r'.*End with a blank line or the word "quit" on a line by itself.*?$', action=f'sendline({pem_import_cert})', loop_continue=True, continue_timer=False), - Statement(pattern=r'.*% Do you really want to replace them.*', + Statement(pattern=r'.*% Do you really want to replace them.*?$', action=f'sendline({is_key_replace})', loop_continue=True, continue_timer=False) @@ -745,6 +746,10 @@ def configure_pki_import(device, elif pkcs_media_type in media_url: import_config = ( f"crypto pki import {tp_name} pkcs12 {pkcs_media_type}{pkcs_url} password {file_password}") + else: + import_config = ( + f"crypto pki import {tp_name} pkcs12 {pkcs_file} password {file_password}") + elif import_type == 'pem': if pem_option == 'url': if pem_media_type in media_file: @@ -776,6 +781,7 @@ def configure_pki_import(device, elif pem_option == 'terminal': import_config = ( f"crypto pki import {tp_name} pem terminal password {file_password}") + try: device.configure(import_config, reply=dialog, error_pattern=error_patterns) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/clear.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/clear.py index c48480944..d89ab5eb5 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/clear.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/clear.py @@ -98,3 +98,26 @@ def platform_software_fed_punt_cpuq_clear(device, state=None): raise SubCommandFailure( "Could not clear cpuq punt counters on {device}. Error:\n{error}".format(device=device, error=e) ) + +def clear_active_punt_ios_cause(device, state=None): + """ show platform software fed switch active punt ios-cause clear + Args: + device ('obj'): Device object + state (str, optional): Switch state active or standby + Return: + None + Raises: + SubCommandFailure + """ + log.debug("show platform software fed switch active punt ios-cause clear") + + if state: + cmd = f'show platform software fed switch {state} punt ios-cause clear' + else: + cmd = 'show platform software fed active punt ios-cause clear' + try: + device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure( + 'Could not clear punt ios-cause on {device}. Error:\n{error}'.format(device=device.name, error=e) + ) \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py index 2571087dd..ad7a3b3d9 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/platform/configure.py @@ -121,13 +121,15 @@ def configure_dope_wrsp(device, asic, core, idx, hi_value, lo_value): ) -def configure_bba_group(device,name,vt_number, service_profile_name=None): +def configure_bba_group(device,name,vt_number, service_profile_name=None, + tag=None): """ bba-group Args: device (`obj`): Device object name (`str`): bba-group name vt_number (`str`): virtual-template interface number service_profile_name('str', optional): service profile name + tag ('str', optional): ppp-max-payload Returns: None Raises: @@ -139,6 +141,8 @@ def configure_bba_group(device,name,vt_number, service_profile_name=None): cli.append(f"virtual-template {vt_number}") if service_profile_name: cli.append(f"service profile {service_profile_name}") + if tag: + cli.append(f"tag ppp-max-payload {tag}") try: device.configure(cli) except SubCommandFailure as e: @@ -432,6 +436,53 @@ def hw_module_beacon_slot_on_off(device, slot, operation): except SubCommandFailure as e: raise SubCommandFailure('Failed to switch {} the beacon slot :'.format(operation)) +def hw_module_beacon_slot_status(device, slot): + """ ON/OFF beacon slot + Args: + device ('obj'): Device object + slot('int'): Switch number + + """ + + cmd = "hw-module beacon slot {} status".format(slot) + try: + output = device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure('Failed to fetch status of the beacon slot :') + return output + +def hw_module_beacon_rp_toggle(device, rp, operation): + """ ON/OFF beacon slot + Args: + device ('obj'): Device object + rp('str'): R0 or R1 + operation('str'): ON/OFF + + """ + + cmd = "hw-module beacon {} {}".format(rp, operation) + try: + device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure('Failed to switch {} the beacon for {}:'.format(operation,rp)) + +def hw_module_beacon_rp_status(device, rp): + """ ON/OFF beacon slot + Args: + device ('obj'): Device object + rp('str'): R0 or R1 + + """ + + cmd = "hw-module beacon {} status".format(rp) + try: + output = device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure('Failed to fetch status of the beacon for {}:'.format(rp)) + return output + + + def stack_ports_enable_disable(device, switch_num, stack_port, operation): """ Enable/Disable the stack port Args: @@ -755,7 +806,7 @@ def unconfigure_macro_auto_sticky(device): except SubCommandFailure as e: raise SubCommandFailure(f"Failed to unconfigure macro auto sticky on this device. Error:\n{e}") -def configure_device_classifier(device, dc_option="", dc_option_name=""): +def configure_device_classifier(device, dc_option="", dc_option_name="", timeout=30): """ Configure device classifier on this device Args: @@ -765,6 +816,7 @@ def configure_device_classifier(device, dc_option="", dc_option_name=""): condition Define device classifier condition device-type Define device type dc_option_name ('str'): Name of device classifier type + timeout('int', optional): timeout in seconds. default is 30 ex:) WORD Condition name WORD Device type name @@ -781,7 +833,7 @@ def configure_device_classifier(device, dc_option="", dc_option_name=""): cmd = 'device classifier' try: - device.configure(cmd) + device.configure(cmd, timeout=timeout) except SubCommandFailure as e: raise SubCommandFailure(f"Failed to configure classifier on this device. Error:\n{e}") @@ -1868,44 +1920,6 @@ def configure_macro_global_apply(device, macro_name): f"Failed to configure macro global on device {device}. Error:\n{e}" ) -def configure_stack_power_stack(device, powerstack_name): - """ Configures stack-power stack - Example : stack-power stack test - - Args: - device ('obj'): device to use - powerstack_name ('str'): Power stack name - Up to 31 chars - Returns: - None - Raises: - SubCommandFailure - """ - log.info(f"Configuring stack-power stack {powerstack_name} on {device.name}") - config = f'stack-power stack {powerstack_name}' - try: - device.configure(config) - except SubCommandFailure as e: - raise SubCommandFailure(f"Failed to configure stack-power stack on device {device.name}. Error:\n{e}") - -def unconfigure_stack_power_stack(device, powerstack_name): - """ Unconfigures stack-power stack - Example : no stack-power stack test - - Args: - device ('obj'): device to use - powerstack_name ('str'): Power stack name - Up to 31 chars - Returns: - None - Raises: - SubCommandFailure - """ - log.info(f"Unconfiguring stack-power stack {powerstack_name} on {device.name}") - config = f'no stack-power stack {powerstack_name}' - try: - device.configure(config) - except SubCommandFailure as e: - raise SubCommandFailure(f"Failed to unconfigure stack-power stack on device {device.name}. Error:\n{e}") - def configure_stack_power_mode_redundant(device, powerstack_name, strict=None): """ Configures redundant mode on stack-power stack Example : mode redundant / mode redundant strict @@ -3964,7 +3978,7 @@ def unconfigure_device_classifier_profile_command( def configure_device_classifier_command( device, dc_option="", dc_option_name="", dc_command="", - dc_command_name="", dc_profile_commands="" + dc_command_name="", dc_profile_commands="", timeout=30 ): """ configure device classifier on this device @@ -3995,6 +4009,7 @@ def configure_device_classifier_command( default Set a command to its defaults exit Exit from device-classifier dev-type configuration mode no Negate a command or set its defaults + timeout('int', optional): timeout in seconds. default is 30 Returns: None Raises: @@ -4005,7 +4020,7 @@ def configure_device_classifier_command( f'{dc_command} {dc_command_name}',f'{dc_profile_commands}'] try: - device.configure(cmd) + device.configure(cmd, timeout=timeout) except SubCommandFailure as e: raise SubCommandFailure(f"Failed to configure classifier command on this device. Error:\n{e}") @@ -4516,6 +4531,21 @@ def hw_module_beacon_RP_active_standby(device, supervisor, operation): except SubCommandFailure as e: raise SubCommandFailure(f'Failed to turn {operation} the {supervisor} beacon slot. Error:\n{e}') +def hw_module_beacon_rp_active_standby_status(device, supervisor): + """ ON/OFF beacon supervisor + Args: + device ('obj'): Device object + supervisor('str'): active/standby + + """ + + cmd = (f"hw-module beacon RP {supervisor} status") + try: + output = device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure(f'Failed to fetch the status for {supervisor} beacon slot. Error:\n{e}') + return output + def configure_snmp_mib_bulkstat_transfer(device, transfer_name): """ configure snmp mib bulkstat transfer @@ -4806,7 +4836,7 @@ def unconfigure_rep_admin_vlan(device, vlanId, segment_number): f"Failed to config admin vlan. Error:\n{e}") def copy_file_with_sftp(device, host, file, username=None, password=None, path=None, timeout=30): - """ Copy files to sftp location + """ Copy files with sftp Args: device ('obj'): Device object to modify configuration @@ -4814,10 +4844,17 @@ def copy_file_with_sftp(device, host, file, username=None, password=None, path=N file('str'): file name username ('str',optional): sftp host VM username password ('str',optional): sftp host vm password - path('str',optional): storage file path in the VM - ex:) - copy file sftp://username:password@host/ + path('str',optional): storage file path in the local directry timeout('int', Optional): timeout in seconds for configuration file load to device(Default is 30 seconds) + + copy files to sftp location from device + ex: copy file sftp://username:password@host/ + : copy test.txt sftp://root:cisco@1.2.3.4/ + + copy files from sftp location to device + ex: copy sftp://username:password@host/file path + : copy sftp://root:cisco@1.2.3.4/test.txt flash:/ + Returns: None Raises: @@ -4837,8 +4874,10 @@ def copy_file_with_sftp(device, host, file, username=None, password=None, path=N loop_continue=True, continue_timer=False) ]) - - cmd = f"copy {file} sftp://{username}:{password}@{host}/{file}" + if path: + cmd = f"copy sftp://{username}:{password}@{host}/{file} {path}" + else: + cmd = f"copy {file} sftp://{username}:{password}@{host}/{file}" elif (username == None) and password: dialog = Dialog([ @@ -4855,8 +4894,10 @@ def copy_file_with_sftp(device, host, file, username=None, password=None, path=N loop_continue=True, continue_timer=False), ]) - - cmd = f"copy {file} sftp://{host}/{file}" + if path: + cmd = f"copy sftp://{host}/{file} {path}" + else: + cmd = f"copy {file} sftp://{host}/{file}" else: dialog = Dialog([ @@ -4869,8 +4910,10 @@ def copy_file_with_sftp(device, host, file, username=None, password=None, path=N loop_continue=True, continue_timer=False) ]) - - cmd = f"copy {file} sftp://{host}/{file}" + if path: + cmd = f"copy sftp://{host}/{file} {path}" + else: + cmd = f"copy {file} sftp://{host}/{file}" try: out = device.execute(cmd,reply=dialog, timeout=timeout) @@ -4881,70 +4924,84 @@ def copy_file_with_sftp(device, host, file, username=None, password=None, path=N return out def copy_file_with_scp(device, host, file, username=None, password=None, path=None, timeout=30): - """ Copy files to sftp location + """ Copy files to scp location Args: device ('obj'): Device object to modify configuration host ('str'): scp host ip address file('str'): file name - username ('str',optional): sftp host VM username - password ('str',optional): sftp host vm password - path('str',optional): storage file path in the VM - ex:) - copy file scp://username:password@host/ + username ('str',optional): scp host VM username + password ('str',optional): scp host vm password + path('str',optional): storage file path in the local directry timeout('int', Optional): timeout in seconds for configuration file load to device(Default is 30 seconds) + + copy files to scp location from device + ex: copy file scp://username:password@host/ + : copy test.txt scp://root:cisco@1.2.3.4/ + + copy files from scp location to device + ex: copy scp://username:password@host/file path + : copy scp://root:cisco@1.2.3.4/test.txt flash:/ + Returns: None Raises: SubCommandFailure + """ log.debug(f"copy files from dut to scp server on {host}") if (username and password): dialog = Dialog([ - Statement(pattern=r'.*Address or name of remote host.*', + Statement(pattern=r'.*Address or name of remote host.*$', action='sendline()', loop_continue=True, continue_timer=False), - Statement(pattern=r'.*Destination filename.*', + Statement(pattern=r'.*Destination filename.*$', action='sendline()', loop_continue=True, continue_timer=False) ]) - - cmd = f"copy {file} scp://{username}:{password}@{host}/{file}" + if path: + cmd = f"copy scp://{username}:{password}@{host}/{file} {path}" + else: + cmd = f"copy {file} scp://{username}:{password}@{host}/{file}" elif (username == None) and password: dialog = Dialog([ - Statement(pattern=r'.*Address or name of remote host.*', + Statement(pattern=r'.*Address or name of remote host.*$', action='sendline()', loop_continue=True, continue_timer=False), - Statement(pattern=r'.*Destination filename.*', + Statement(pattern=r'.*Destination filename.*$', action='sendline()', loop_continue=True, continue_timer=False), - Statement(pattern=r'.*Password:', + Statement(pattern=r'.*Password:\s*$', action=f'sendline({password})', loop_continue=True, continue_timer=False), ]) - - cmd = f"copy {file} scp://{host}/{file}" + if path: + cmd = f"copy {file} scp://{host}/{file} {path}" + else: + cmd = f"copy {file} scp://{host}/{file}" else: dialog = Dialog([ - Statement(pattern=r'.*Address or name of remote host.*', + Statement(pattern=r'.*Address or name of remote host.*$', action='sendline()', loop_continue=True, continue_timer=False), - Statement(pattern=r'.*Destination filename.*', + Statement(pattern=r'.*Destination filename.*$', action='sendline()', loop_continue=True, continue_timer=False) ]) - - cmd = f"copy {file} scp://{host}/{file}" + if path: + cmd = f"copy scp://{host}/{file} {path}" + else: + cmd = f"copy {file} scp://{host}/{file}" try: out = device.execute(cmd,reply=dialog, timeout=timeout) @@ -5497,4 +5554,65 @@ def configure_event_manager(device, event, description,event_run_option, try: device.configure(cmd) except SubCommandFailure as e: - raise SubCommandFailure(f"Failed to configure event manager applet on device {device.name}. Error:\n{e}") \ No newline at end of file + raise SubCommandFailure(f"Failed to configure event manager applet on device {device.name}. Error:\n{e}") + + +def configure_hw_module_switch_number_ecomode_led(device, switch_number='all'): + + """ configure_hw_module_switch_number_ecomode_led + Args: + device ('obj'): device to use + switch_number ('str'): switch number + Returns: + None + Raises: + SubCommandFailure exception + """ + + cmd = [f"hw-module switch {switch_number} ecomode led"] + try: + device.configure(cmd) + except SubCommandFailure as e: + raise SubCommandFailure(f"Failed to configure hw-module ecomode led on device {device.name}. Error:\n{e}") + + +def unconfigure_hw_module_switch_number_ecomode_led(device, switch_number='all'): + + """ unconfigure_hw_module_switch_number_ecomode_led + Args: + device ('obj'): device to use + switch_number ('str'): switch number + Returns: + None + Raises: + SubCommandFailure exception + """ + + cmd = [f"no hw-module switch {switch_number} ecomode led"] + try: + device.configure(cmd) + except SubCommandFailure as e: + raise SubCommandFailure(f"Failed to unconfigure hw-module ecomode led on device {device.name}. Error:\n{e}") + + +def configure_ip_http_client_secure_trustpoint(device, trustpoint_name): + """ Configures the secure trustpoint + Example : ip http client secure-trustpoint {trustpoint_name} + + Args: + device ('obj'): device to use + license ('str): secure-trustpoint + + Returns: + None + + Raises: + SubCommandFailure + """ + + cmd = f'ip http client secure-trustpoint {trustpoint_name}' + try: + device.configure(cmd) + except SubCommandFailure as e: + raise SubCommandFailure(f'Failed to ip http client secure-trustpoint {trustpoint_name} on device {device.name}. Error:\n{e}') + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/policy_map/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/policy_map/configure.py index 3ce9f0632..eba5bad68 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/policy_map/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/policy_map/configure.py @@ -959,3 +959,27 @@ def configure_policy_map_class_precedence(device, policy_map_name,class_map_name except SubCommandFailure as e: raise SubCommandFailure( f"Could not configure Configures policy-map with class {class_map_name} and precedence {precedence_num}. Error:\n{e}") + +def unconfigure_policy_map_with_pps(device, policy_name, class_map_name, police_rate): + """ Unconfigures policy-map with police rate in pps + Args: + device ('obj'): device to use + policy_name ('str'): name of the policy name + class_map_name ('str'): class map name information + police_rate ('int'): police rate details in pps + Returns: + None + Raises: + SubCommandFailure + """ + log.info(f"unconfigure policy_map {policy_name} with {class_map_name} and {police_rate} in pps") + + config = [f"policy-map {policy_name}", + f"class {class_map_name}", + f"no police rate {police_rate} pps"] + try: + device.configure(config) + except SubCommandFailure as e: + raise SubCommandFailure( + f"Could not unconfigure policy_map {policy_name} with {class_map_name} and {police_rate} in pps. Error:\n{e}") + \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/configure.py index baf0f4c80..385c35d72 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/configure.py @@ -21,6 +21,22 @@ def configure_rommon_tftp(device, ipv6_address=False): """ tftp = {} + # Get the current device state from the device + if device.is_ha and hasattr(device, 'subconnections'): + if isinstance(device.subconnections, list): + states = list(set([con.state_machine.current_state for con in device.subconnections])) + if states == ['rommon']: + state = 'rommon' + elif 'rommon' in states: + raise Exception(f'One of the device connection is in rommon state, need to recover device.') + else: + state = device.state_machine.current_state + + # check the device is in rommon + if state != 'rommon': + raise Exception(f'The device is not in rommon state') + + # Check if management attribute in device object, if not set to empty dict if not hasattr(device, 'management'): setattr(device, "management", {}) @@ -54,15 +70,25 @@ def configure_rommon_tftp(device, ipv6_address=False): tftp.setdefault("DEFAULT_GATEWAY", str(device.management.get('gateway', {}).get(ip, ''))) tftp.setdefault("TFTP_SERVER", str(device.testbed.servers.get('tftp', {}).get('address', ''))) + # get the image from clean data + tftp_image_path = getattr(device.clean, 'images', []) + if tftp_image_path: + tftp.setdefault("TFTP_FILE", tftp_image_path[0]) + log.info("checking if all the tftp information is given by the user") if not all(tftp.values()): log.warning(f"Some TFTP information is missing: {tftp}") for set_command, value in tftp.items(): + # To set rommon variables cmd = f'{set_command}={value}' try: - device.execute(cmd) + # Configure tftp rommon variables in active rp + if device.is_ha and hasattr(device, 'subconnections'): + device.subconnections[0].execute(cmd) + else: + device.execute(cmd) except Exception as e: raise SubCommandFailure( f"Failed to set the rommon variable {set_command}. Error:\n{e}") diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/utils.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/utils.py new file mode 100644 index 000000000..3ad751587 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/rommon/utils.py @@ -0,0 +1,82 @@ +''' Utility functions for rommon''' + +import logging +from pyats.log.utils import banner +log = logging.getLogger(__name__) + +def device_rommon_boot(device, golden_image=None, tftp_boot=None, error_pattern=[]): + '''Boot device using golden image or using tftp image + Args: + device: device object + golden_image(`list`): Golden image to boot the device. + tftp_boot: + image(`list`): Image to boot. + tftp_server('str'): tftp server information. + + Return: + None + Raise: + Exception + ''' + + log.info(f'Get the recovery details from clean for device {device.name}') + try: + recovery_info = device.clean.get('device_recovery', {}) + except AttributeError: + log.warning(f'There is no recovery info for device {device.name}') + recovery_info = {} + + # golden_image info from device recovery + if not golden_image: + golden_image = recovery_info.get('golden_image', "") + + # tftp info from device recovery + tftp_boot = tftp_boot or recovery_info.get('tftp_boot', {}) + # get the image and tftp server info + image = tftp_boot.get('image', []) + tftp_server = tftp_boot.get('tftp_server', "") + + + # To boot using golden image + if golden_image: + log.info(banner("Booting device '{}' with the Golden images".\ + format(device.name))) + log.info("Golden image information found:\n{}".format(golden_image)) + golden_image = golden_image[0] + cmd = f"{golden_image}" + + # To boot using tftp rommon variable + # In this case, we assume the rommon variable TFTP_FILE is set already + # and booting it using the "boot tftp:" command + elif getattr(device.clean, 'images', []): + log.warning('Assuming the rommon variable TFTP_FILE is set and boot using "boot tftp:" command') + cmd = "tftp:" + + # To boot using tftp information + elif tftp_server and image: + log.info(banner("Booting device '{}' with the Tftp images".\ + format(device.name))) + log.info("Tftp boot information found:\n{}".format(tftp_boot)) + + # To process the image path + if image[0][0] != '/': + image[0] = '/' + image[0] + + # To build the tftp command + cmd_info = ("tftp://", tftp_server, image[0]) + cmd = ''.join(cmd_info) + + else: + raise Exception('Global recovery only support golden image and tftp ' + 'boot recovery and neither was provided') + + try: + # To boot the image from rommon + device.reload(image_to_boot=cmd, error_pattern=error_pattern) + except Exception as e: + log.error(str(e)) + raise Exception(f"Failed to boot the device {device.name}", from_exception=e) + else: + log.info(f"Successfully boot the device {device.name}") + + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py index 4b8adcdaf..841d27cf1 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/routing/configure.py @@ -66,37 +66,6 @@ def configure_routing_ip_route( ) ) - -def remove_routing_ip_route( - device, ip_address, mask, interface=None, dest_add=None -): - """ Remove ip route on device - - Args: - device ('obj'): Device obj - ip_address ('str'): ip address for interface - mask (str): mask the ip address - interface ('str'): interface name to configure - dest_add('str'): destination address to configure - - Returns: - None - - Raises: - SubCommandFailure - """ - log.info(f'Unconfiguring ip route {ip_address} {mask} on {device.name}') - config = f'no ip route {ip_address} {mask}' - try: - if interface: - config += f' {interface}' - if dest_add: - config += f' {dest_add}' - except SubCommandFailure as e: - raise SubCommandFailure( - f"Configuration failed for {ip_address}. Error:\n{e}" - ) - def configure_routing_static_routev6( device, routev6, mask, vrf=None, interface=None, destination_addressv6=None ): diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py index f978670e8..a7a58c127 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/running_config/get.py @@ -32,26 +32,30 @@ def search_running_config(device, option): return config -def get_running_config_dict(device, option=None): +def get_running_config_dict(device, option=None, output=None): """ Get show running-config output Args: device (`obj`): Device object option (`str`): option command + output (`str`): output of show running-config Returns: config_dict (`dict`): dict of show run output """ - if option: - cmd = "show running-config {}".format(option) + if output: + out = output else: - cmd = "show running-config" - try: - out = device.execute(cmd) - except SubCommandFailure as e: - raise SubCommandFailure( - "Could not get running-config information " - "on device {device}".format(device=device.name) - ) + if option: + cmd = "show running-config {}".format(option) + else: + cmd = "show running-config" + try: + out = device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure( + "Could not get running-config information " + "on device {device}".format(device=device.name) + ) config_dict = get_config_dict(out) return config_dict diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/sisf/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/sisf/get.py index 6bf056247..225af35de 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/sisf/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/sisf/get.py @@ -187,6 +187,7 @@ def get_ip_theft_syslogs(device): # *Sep 15 12:53:06.383 EST: %SISF-4-IP_THEFT: IP Theft IP=2001:DB8::101 VLAN=20 MAC=dead.beef.0001 IF=Twe1/0/1 New MAC=dead.beef.0002 New I/F=Twe1/0/1 # *Dec 17 13:57:09.293 EST: %SISF-4-IP_THEFT: IP Theft IP=192.168.11.103 VLAN=20 MAC=dead.beef.0001 IF=Twe1/0/1 New(Spoof) MAC=dead.beef.0002 New I/F=Twe1/0/5 + # .Feb 5 19:30:20.037: %SISF-4-IP_THEFT: IP Theft IP=20.0.0.254 VLAN=20 MAC=ba25.cdf4.ad38 IF=Vl20 New(Spoof) MAC=dead.beef.0002 New IF=Gi1/0/1 theft1 = re.compile( timematch + r'\s+%SISF-4-IP_THEFT: IP Theft' + @@ -195,7 +196,7 @@ def get_ip_theft_syslogs(device): r'\s+MAC=(?P([a-fA-F\d]{4}\.){2}[a-fA-F\d]{4})' + r'\s+IF=(?P[\w\/\.\-\:]+)' + r'\s+New(\(Spoof\))? MAC=(?P([a-fA-F\d]{4}\.){2}[a-fA-F\d]{4})' + - r'\s+New I/F=(?P[\w\/\.\-\:]+)' + r'\s+New I(/?)F=(?P[\w\/\.\-\:]+)' ) # The order of when interface appears varies, so we need a second match # *Jan 11 15:57:30.413 EST: %SISF-4-IP_THEFT: IP Theft IP=192.168.11.103 VLAN=20 MAC=dead.beef.0008 New(Spoof) MAC=dead.beef.0002 IF=Vl20 New IF=Twe1/0/1 diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py index 2fcd588d3..bb4a4c8d9 100755 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/snmp/get.py @@ -11,7 +11,7 @@ def get_snmp_snmpwalk( - device, community, ip_address, oid, version="2c", option=None + device, community, ip_address, oid, version="2c", option=None, timeout=60 ): """ Get snmpwalk output from SNMP device @@ -22,6 +22,7 @@ def get_snmp_snmpwalk( oid (`str`): Oid code version (`str`): SNMP version option (`str`): Optional command + timeout (`int`): Optional timeout value. Default is 60 seconds. Returns: out (`str`): Executed output of SNMP command Raises: @@ -43,7 +44,7 @@ def get_snmp_snmpwalk( oid=oid, ) - return device.execute(cmd) + return device.execute(cmd, timeout=timeout) def get_snmp_id_slot_map(device, community, ip_address, oids, version="2c"): diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/system/configure.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/system/configure.py index 660b7b12b..e9f0e1ad0 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/system/configure.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/iosxe/system/configure.py @@ -75,3 +75,28 @@ def configure_boot_level_licence(device, nw_advantage=False, nw_essentials=False raise SubCommandFailure( f"Failed to configure boot level license Error, Error:\n{e}" ) + +def configure_terminal_settings(device, length=24, width=80, **kwargs): + ''' + Configure terminal length/width + + Args: + device ('obj'): Device object + length ('int'): Terminal length of the device (Default: 24) + width ('int'): Terminal width of the device (Default: 80) + Returns: + None + Raises: + SubCommandFailure: Failed to configure terminal setting + ''' + + cmd = [ + f"terminal length {length}", + f"terminal width {width}" + ] + try: + device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure( + f"Failed to configure terminal settings, Error:\n{e}" + ) \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/get.py index 61b9fcd35..0edd5fc9c 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/get.py @@ -1,21 +1,46 @@ """Common get functions for linux""" import logging +import re from unicon.core.errors import SubCommandFailure log = logging.getLogger(__name__) -def get_file_contents(device, filename): +def get_file_contents(device, filename, remove_cr=True): """ Args: device(`obj`) filename(`str`): Absolute path to the file + remove_cr('str'): Remove carriage return (\r) from the file contents. Returns: File contents as a string """ cmd = f"cat {filename}" try: - return str(device.execute(cmd)) + output = str(device.execute(cmd)) + if remove_cr: + return output.replace('\r', "") + return output except SubCommandFailure as e: - SubCommandFailure(f"Failed to get supported elliptic curves. Error\n {e}") + SubCommandFailure(f"Failed to get the file contents. Error\n {e}") + +def get_ip_route_for_ipv4(device, ipv4): + """ + Args: + device(`obj`): Device object + ipv4(`IPv4Address`): the ip that we want to check the routing table for + Returns: + ip_route('str'): the string format for ip route + """ + cmd = f"ip route get {ipv4}" + try: + output = device.execute(cmd) + except SubCommandFailure as e: + SubCommandFailure(f"Failed to get the file contents. Error\n {e}") + pattern = re.compile(r'.*src (?P[0-9.]+).*') + route_match = pattern.match(output) + if route_match: + return route_match.groupdict().get('route') + + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py index 301341197..56c7bd008 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/openssl/generate.py @@ -6,19 +6,25 @@ log = logging.getLogger(__name__) -def generate_rsa_ssl_key(device, private_key_name, key_size=2048, password=None, aes_key_size=256, path_to_file=None): +def generate_rsa_ssl_key(device, private_key_name, key_size=2048, password=None, aes_key_size=256, path_to_file=None, aes=True): """ Args: device('obj'): Device to configure the SSL key on private_key_name(`str`): Name of the certificate file key_size(`int`, Optional): RSA key bit length, default 2048 password(`str`, Optional): Password to encrypt the device key, default None + aes('bool', Optional): Use AES encryption if True, else use 3DES. default to True. aes_key_size(`int`, Optional): AES keysize used to encrypt password if provided. Default 256 path_to_file(`str`, Optional): Absolute path to the directory where the file should be saved, default None Raises: SubCommandFailure """ + # To handle the encryption, aes encryption is used by default + encryption = f'aes{aes_key_size}' + if not aes: + encryption = 'des3' + log.info(f"Configuring RSA private key with {key_size} bits") if path_to_file: try: @@ -30,26 +36,32 @@ def generate_rsa_ssl_key(device, private_key_name, key_size=2048, password=None, cmd = [f"openssl genrsa -out {private_key_name} {key_size}"] if password: log.info(f"Key will be encrypted to file encrypted_{private_key_name}") - cmd.append(f"openssl rsa -aes{aes_key_size} -in {private_key_name} -out {private_key_name} -passout pass:{password}") + cmd.append(f"openssl rsa -{encryption} -in {private_key_name} -out {private_key_name} -passout pass:{password}") try: device.execute(cmd) except SubCommandFailure as e: raise SubCommandFailure(f"Failed to configure RSA{key_size} key on the device. Error:\n{e}") -def generate_ecc_ssl_key(device, private_key_name, elliptic_curve, password=None, aes_key_size=256, path_to_file=None): +def generate_ecc_ssl_key(device, private_key_name, elliptic_curve, password=None, aes_key_size=256, path_to_file=None, aes=True): """ Args: device(`obj`): Device to configure the SSL key on private_key_name(`str`): Name of the private key file elliptic_curve(`str`): Specify which elliptic curve to employ password(`str`, Optional): Password to encrypt the private key, default None + aes('bool', Optional): Use AES encryption if True, else use 3DES. default to True. aes_key_size(`int`, Optional): AES keysize used to encrypt password if provided. Default 256 path_to_file(`str`, Optional): Absolute path to the directory where the file should be saved, default None Raises: SubCommandFailure """ + # To handle the encryption, aes encryption is used by default + encryption = f'aes{aes_key_size}' + if not aes: + encryption = 'des3' + log.info(f"Configuring ECC private key with {elliptic_curve}") if path_to_file: try: @@ -61,7 +73,7 @@ def generate_ecc_ssl_key(device, private_key_name, elliptic_curve, password=None cmd = [f"openssl ecparam -genkey -name {elliptic_curve} -out {private_key_name}"] if password: log.info(f"Key will be encrypted to file {private_key_name}") - cmd.append(f"openssl ec -aes{aes_key_size} -in {private_key_name} -out {private_key_name} -passout pass:{password}") + cmd.append(f"openssl ec -{encryption} -in {private_key_name} -out {private_key_name} -passout pass:{password}") try: device.execute(cmd) @@ -149,3 +161,30 @@ def generate_ssl_certificate(device, device_key_file, ca_certificate_file, priva device.execute(cmd) except SubCommandFailure as e: raise SubCommandFailure(f"Failed to generate the ssl certificate. Error:\n{e}") + + +def generate_pkcs12(device, device_key_file, device_cert_file, root_cert_file, output_pkcs12_file, + passin_password=None, passout_password=None): + """ + Args: + device('obj'): Device to configure the SSL key on. + device_key_file(`str`): Filename or absolute path to a file containing a device key for the certificate. + device_cert_file(`str`): Filename or absolute path to a file containing a device certificate. + root_cert_file(`str`): Filename or absolute path to a root certificate. + output_pkcs12_file(`str`): Filename or absolute path to a output pkcs12 file. + passin_password(`str`, Optional): The password for the input private key file, if applicable. Default None. + passout_password(`str`, Optional): The password for the output private key file, if applicable. Default None. + Raises: + SubCommandFailure + """ + + cmd = f"openssl pkcs12 -export -chain -inkey {device_key_file} -in {device_cert_file} -CAfile {root_cert_file} -out {output_pkcs12_file}" + if passin_password: + cmd += f" -passin pass:{passin_password}" + if passout_password: + cmd += f" -passout pass:{passout_password}" + + try: + device.execute(cmd) + except SubCommandFailure as e: + raise SubCommandFailure(f"Failed to generate pkcs12 file on the device. Error:\n{e}") diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py index f36e9201a..353cb1b37 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/snmp/get.py @@ -9,7 +9,7 @@ log = logging.getLogger(__name__) def get_snmp_snmpwalk( - device, community, ip_address, oid, version="2c", option=None + device, community, ip_address, oid, version="2c", option=None, timeout=60 ): """ Get snmpwalk output from SNMP device Args: @@ -19,6 +19,7 @@ def get_snmp_snmpwalk( oid (`str`): Oid code version (`str`, optional): SNMP version. Default is "2c" option (`str`): Optional command. Default is None + timeout (`int`): Optional timeout value. Default is 60 seconds. Returns: out (`str`): Executed output of SNMP command Raises: @@ -40,7 +41,7 @@ def get_snmp_snmpwalk( oid=oid, ) - return device.execute(cmd) + return device.execute(cmd, timeout=timeout) def get_snmp_snmpget(device, community, ip_address, oid, version="2c", option=None): diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py index 8bebf0848..b641f0eff 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/socat/relay.py @@ -3,8 +3,10 @@ import logging from time import sleep -log = logging.getLogger(__name__) +from unicon.eal.dialogs import Dialog + +log = logging.getLogger(__name__) def socat_relay(device, remote_ip, remote_port, protocol='TCP4'): """ Setup UDP/TCP relay using 'socat' command. @@ -18,6 +20,23 @@ def socat_relay(device, remote_ip, remote_port, protocol='TCP4'): Returns: proxy_port (int): Proxy port number or False if not able to setup relay """ + proxy_port, _ = start_socat_relay(device, remote_ip, remote_port, protocol) + return proxy_port + + +def start_socat_relay(device, remote_ip, remote_port, protocol='TCP4'): + """ Setup UDP/TCP relay using 'socat' command. + + Args: + device (obj): Device object (optional) + remote_ip (str): remote IP address + remote_port (str): remote port + protocol (str): portocol (default: TCP4) + + Returns: + proxy_port (int): Proxy port number or False if not able to setup relay + socat_pid (int): Process ID for the socat process + """ try: socat_output = device.execute(f'socat {protocol}-LISTEN:0,reuseaddr,fork {protocol}:{remote_ip}:{remote_port} &', error_pattern=['command not found']) @@ -50,4 +69,16 @@ def socat_relay(device, remote_ip, remote_port, protocol='TCP4'): log.error('Could not setup port relay via proxy') return - return proxy_port + return proxy_port, socat_pid + + +def stop_socat_relay(device, socat_pid): + """ Stop the relay process by killing the PID + + Args: + socat_pid (int): Process ID for socat process + """ + dialog = Dialog([ + [r'.*?\[\d+].\s+Exit.*', 'sendline()', None, True, False] + ]) + device.execute(f'kill {socat_pid}', reply=dialog) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py index 5c01194cd..92551d9af 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/linux/utils.py @@ -2,6 +2,7 @@ import re import logging import pathlib +import ipaddress # Logger log = logging.getLogger(__name__) @@ -205,3 +206,22 @@ def scp(device, # return True/False depending on result return bool(re.search(r'{}\s*100%'.format(local_filename), out)) + +def get_valid_ipv4_address(device, ip): + """ Validate and convert the input IP address into an IPv4Interface instance. + + Args: + device (`obj`) : Device object (local device) + ip_address (`str` or IPv4Interface): IP address to be validated and converted + Raise: + ipaddress.AddressValueError: If IP address cannot be converted to IPv4Interface + Returns: + result (`IPv4Address`): The IPv4Address for ip + """ + try: + ip = ipaddress.IPv4Interface(ip) + except ipaddress.AddressValueError as e: + log.error(f'Could not convert {ip} to IPv4Interface address because of {e}') + raise e + return ip.ip + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/cheetah/ap/execute/execute_archive_download/test_execute_archive_download.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/cheetah/ap/execute/execute_archive_download/test_execute_archive_download.py new file mode 100644 index 000000000..38b4e1ad6 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/cheetah/ap/execute/execute_archive_download/test_execute_archive_download.py @@ -0,0 +1,119 @@ +import unittest +from genie.libs.sdk.apis.cheetah.ap.execute import execute_archive_download +from unittest.mock import Mock +from genie.libs.clean.stages.tests.utils import create_test_device + + +class TestPerformArchiveDownload(unittest.TestCase): + + def setUp(self): + self.device = create_test_device(name='AP4001.7AB2.C1B6', os='cheetah', platform='ap') + + def test_perform_archive_download_success(self): + data = ["""BOOT path-list: part2""", + """Download script called with args:[-l tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809 -m 0] + Starting download AP image tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809 ... + It may take a few minutes. If longer, please abort command, check network and try again. + ######################################################################## 100.0% + Upgrading ... + status 'upgrade.sh: Script called with args:[NO_UPGRADE]' + do NO_UPGRADE, part2 is active part + status 'upgrade.sh: Script called with args:[-c PREDOWNLOAD]' + do PREDOWNLOAD, part2 is active part + status 'upgrade.sh: Creating before-upgrade.log' + status 'upgrade.sh: Start doing upgrade arg1=PREDOWNLOAD arg2=,from_cli arg3= ...' + status 'upgrade.sh: Using image /tmp/cli_part.tar on barbados ...' + status 'Image signing verify success.' + status 'upgrade.sh: ***** part to upgrade is part1 *******' + status 'upgrade.sh: AP version1: part1 17.14.0.21, img 17.14.0.21' + status 'upgrade.sh: Extracting and verifying image in part1...' + status 'upgrade.sh: BOARD generic case execute' + status 'upgrade.sh: mount ubifs /dev/ubivol/part1 as /bootpart, status=0' + status 'upgrade.sh: Untar /tmp/cli_part.tar to /bootpart/part1...' + status 'upgrade.sh: Sync image to disk...' + status 'upgrade.sh: status 'Successfully verified image in part1.'' + status 'upgrade.sh: AP version2: part1 17.14.0.21, img 17.14.0.21' + status 'upgrade.sh: AP backup version: 17.14.0.21' + status 'upgrade.sh: Finished upgrade task.' + status 'upgrade.sh: Cleanup for do_upgrade...' + status 'upgrade.sh: /tmp/upgrade_in_progress cleaned' + status 'upgrade.sh: Cleanup tmp files ...' + status 'upgrade.sh: Script called with args:[ACTIVATE]' + do ACTIVATE, part2 is active part + status 'upgrade.sh: mount ubifs /dev/ubivol/part1 as /bootpart, status=0' + status 'upgrade.sh: Verifying image signature in part1' + status 'upgrade.sh: status 'Successfully verified image in part1.'' + status 'upgrade.sh: activate part1, set BOOT to part1' + status 'upgrade.sh: AP primary version after reload: 17.14.0.21' + status 'upgrade.sh: AP backup version after reload: 17.14.0.21' + Successfully setup AP image. + Image download completed. + Archive done.""", """"BOOT path-list: part1"""] + self.device.execute = Mock(side_effect=data) + self.device.reload = Mock() + self.device.connect = Mock() + result = execute_archive_download(self.device, + "tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809", 300) + self.assertEqual(result, True) + + def test_perform_archive_download_failure(self): + data = ["""BOOT path-list: part1""", + """Download script called with args:[-l tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809 -m 0] + Starting download AP image tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809 ... + It may take a few minutes. If longer, please abort command, check network and try again. + ######################################################################## 100.0% + Upgrading ... + status 'upgrade.sh: Script called with args:[NO_UPGRADE]' + do NO_UPGRADE, part2 is active part + status 'upgrade.sh: Script called with args:[-c PREDOWNLOAD]' + do PREDOWNLOAD, part2 is active part + status 'upgrade.sh: Creating before-upgrade.log' + status 'upgrade.sh: Start doing upgrade arg1=PREDOWNLOAD arg2=,from_cli arg3= ...' + status 'upgrade.sh: Using image /tmp/cli_part.tar on barbados ...' + status 'Image signing verify success.' + status 'upgrade.sh: ***** part to upgrade is part1 *******' + status 'upgrade.sh: AP version1: part1 17.14.0.21, img 17.14.0.21' + status 'upgrade.sh: Extracting and verifying image in part1...' + status 'upgrade.sh: BOARD generic case execute' + status 'upgrade.sh: mount ubifs /dev/ubivol/part1 as /bootpart, status=0' + status 'upgrade.sh: Untar /tmp/cli_part.tar to /bootpart/part1...' + status 'upgrade.sh: Sync image to disk...' + status 'upgrade.sh: status 'Successfully verified image in part1.'' + status 'upgrade.sh: AP version2: part1 17.14.0.21, img 17.14.0.21' + status 'upgrade.sh: AP backup version: 17.14.0.21' + status 'upgrade.sh: Finished upgrade task.' + status 'upgrade.sh: Cleanup for do_upgrade...' + status 'upgrade.sh: /tmp/upgrade_in_progress cleaned' + status 'upgrade.sh: Cleanup tmp files ...' + status 'upgrade.sh: Script called with args:[ACTIVATE]' + do ACTIVATE, part2 is active part + status 'upgrade.sh: mount ubifs /dev/ubivol/part1 as /bootpart, status=0' + status 'upgrade.sh: Verifying image signature in part1' + status 'upgrade.sh: status 'Successfully verified image in part1.'' + status 'upgrade.sh: activate part1, set BOOT to part1' + status 'upgrade.sh: AP primary version after reload: 17.14.0.21' + status 'upgrade.sh: AP backup version after reload: 17.14.0.21' + Successfully setup AP image. + Image download completed. + Archive done.""", """"BOOT path-list: part1"""] + self.device.execute = Mock(side_effect=data) + self.device.reload = Mock() + self.device.connect = Mock() + result = execute_archive_download(self.device, + "tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809", 300, reload=True) + self.assertEqual(result, False) + + def test_perform_archive_download_failure_2(self): + data = ["""BOOT path-list: part1""", + """Download script called with args:[-l tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809 -m 0] + Starting download AP image tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809 ... + It may take a few minutes. If longer, please abort command, check network and try again. + ######################################################################## 100.0% + Image download failed.""", """"BOOT path-list: part1"""] + self.device.execute = Mock(side_effect=data) + self.device.reload = Mock() + self.device.connect = Mock() + result = execute_archive_download(self.device, + "tftp://9.4.58.10/ftp/ewlc/ap3g3-k9w8-tar.master-cisco.202309230809", 300, reload=True) + self.assertEqual(result, False) + diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..7fac266d9 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + Mac access-list extended VACL_MAC: "Mac access-list extended VACL_MAC\r\n" + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + permit any any: "permit any any\r\n" + prompt: 9400_L2_DUT(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: 9400_L2_DUT(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: 9400_L2_DUT# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/test_api_configure_type_access_list_action.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/test_api_configure_type_access_list_action.py new file mode 100644 index 000000000..ca3f44829 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/acl/configure/configure_type_access_list_action/test_api_configure_type_access_list_action.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.acl.configure import configure_type_access_list_action + + +class TestConfigureTypeAccessListAction(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + 9400_L2_DUT: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9400 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['9400_L2_DUT'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_type_access_list_action(self): + result = configure_type_access_list_action(self.device, 'Mac', 'VACL_MAC', 'permit', None, None) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/mock_data/iosxe/mock_data.yaml index 46c95c01a..0bf561b1f 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/mock_data/iosxe/mock_data.yaml @@ -4,17 +4,15 @@ configure: new_state: execute line console 0: new_state: configure_line - no app-hosting appid: "no app-hosting appid\r\n% Failed to perform variable substitutions\ - \ for URI '/services;serviceName=im/Apps;name=$name' during URI conversion in\ - \ config_no_app-hosting_name.\r\n" + no app-hosting appid APP: "no app-hosting appid APP\r\n" no logging console: '' - prompt: stack3-nyq-PE1(config)# + prompt: 9300-24UX-NBR1(config)# configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: stack3-nyq-PE1(config-line)# + prompt: 9300-24UX-NBR1(config-line)# connect: commands: ? '' @@ -34,4 +32,4 @@ execute: show version: '' term length 0: '' term width 0: '' - prompt: stack3-nyq-PE1# + prompt: 9300-24UX-NBR1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/test_api_unconfigure_app_hosting_appid.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/test_api_unconfigure_app_hosting_appid.py index d3c622444..8f667bbb6 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/test_api_unconfigure_app_hosting_appid.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/apphosting/configure/unconfigure_app_hosting_appid/test_api_unconfigure_app_hosting_appid.py @@ -10,7 +10,7 @@ class TestUnconfigureAppHostingAppid(unittest.TestCase): def setUpClass(self): testbed = f""" devices: - stack3-nyq-PE1: + 9300-24UX-NBR1: connections: defaults: class: unicon.Unicon @@ -18,11 +18,11 @@ def setUpClass(self): command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect protocol: unknown os: iosxe - platform: cat9k - type: router + platform: c9300 + type: c9300 """ self.testbed = loader.load(testbed) - self.device = self.testbed.devices['stack3-nyq-PE1'] + self.device = self.testbed.devices['9300-24UX-NBR1'] self.device.connect( learn_hostname=True, init_config_commands=[], @@ -30,6 +30,6 @@ def setUpClass(self): ) def test_unconfigure_app_hosting_appid(self): - result = unconfigure_app_hosting_appid(self.device) + result = unconfigure_app_hosting_appid(self.device, 'APP') expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/mock_data/iosxe/mock_data.yml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/mock_data/iosxe/mock_data.yml new file mode 100644 index 000000000..9cbccaca2 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/mock_data/iosxe/mock_data.yml @@ -0,0 +1,34 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: CTLR_1_1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: CTLR_1_1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: CTLR_1_1# \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/test_api_get_boot_variables_dict.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/test_api_get_boot_variables_dict.py new file mode 100644 index 000000000..a58369a50 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cat9k/platform/get/test_get_boot_variables/test_api_get_boot_variables_dict.py @@ -0,0 +1,45 @@ +import unittest + +from genie.conf import Genie +from genie.libs.sdk.apis.iosxe.cat9k.platform.get import get_boot_variables + + +class TestApiIiosxePlatform(unittest.TestCase): + + parsed_outputs = { + 'show boot': { + "current_boot_variable": "flash:/rio_yang_current.bin;", + "next_reload_boot_variable": "flash:/rio_yang_next.bin;", + }, + } + + @classmethod + def get_parsed_output(cls, arg, **kwargs): + '''Return the parsed output of the given show command ''' + return cls.parsed_outputs[arg] + + @classmethod + def setUpClass(cls): + testbed = """ + devices: + R1: + os: iosxe + type: router + connections: {} + """ + cls.tb = Genie.init(testbed) + cls.device = cls.tb.devices['R1'] + cls.device.parse = cls.get_parsed_output + + def test_get_boot_variables(self): + boot_vars = get_boot_variables(self.device, 'current') + self.assertEqual(boot_vars, ['flash:/rio_yang_current.bin']) + + boot_vars = get_boot_variables(self.device, 'next') + self.assertEqual(boot_vars, ['flash:/rio_yang_next.bin']) + + with self.assertRaises(AssertionError): + get_boot_variables(self.device, 'does_not_exist') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/mock_data/iosxe/mock_data.yaml index 8d7da5dc4..895c34228 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/mock_data/iosxe/mock_data.yaml @@ -74,6 +74,66 @@ execute: new_state: configure config-transaction: new_state: configure + show interfaces TenGigabitEthernet1/0/19: | + TenGigabitEthernet1/0/19 is administratively down, line protocol is down (disabled) + Hardware is Gigabit Ethernet, address is fc58.90a3.d30c (bia fc58.90a3.d30c) + MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, + reliability 255/255, txload 1/255, rxload 3/255 + Encapsulation ARPA, loopback not set + Keepalive set (10 sec) + Auto-duplex, Auto-speed, media type is 10/100/1000BaseTX + input flow-control is on, output flow-control is unsupported + ARP type: ARPA, ARP Timeout 04:00:00 + Last input 00:01:15, output 00:01:15, output hang never + Last clearing of "show interface" counters never + Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0 + Queueing strategy: fifo + Output queue: 0/40 (size/max) + 5 minute input rate 12345000 bits/sec, 24104 packets/sec + 5 minute output rate 0 bits/sec, 0 packets/sec + 17027741 packets input, 1089787530 bytes, 0 no buffer + Received 315 broadcasts (305 multicasts) + 0 runts, 0 giants, 0 throttles + 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored + 0 watchdog, 305 multicast, 0 pause input + 0 input packets with dribble condition detected + 79 packets output, 13095 bytes, 0 underruns + Output 35 broadcasts (35 multicasts) + 0 output errors, 0 collisions, 2 interface resets + 0 unknown protocol drops + 0 babbles, 0 late collision, 0 deferred + 0 lost carrier, 0 no carrier, 0 pause output + 0 output buffer failures, 0 output buffers swapped out + show interfaces TenGigabitEthernet1/0/20: | + TenGigabitEthernet1/0/20 is administratively down, line protocol is down (disabled) + Hardware is Gigabit Ethernet, address is fc58.90a3.d30c (bia fc58.90a3.d30c) + MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec, + reliability 255/255, txload 1/255, rxload 3/255 + Encapsulation ARPA, loopback not set + Keepalive set (10 sec) + Auto-duplex, Auto-speed, media type is 10/100/1000BaseTX + input flow-control is on, output flow-control is unsupported + ARP type: ARPA, ARP Timeout 04:00:00 + Last input 00:01:15, output 00:01:15, output hang never + Last clearing of "show interface" counters never + Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0 + Queueing strategy: fifo + Output queue: 0/40 (size/max) + 5 minute input rate 12345000 bits/sec, 24104 packets/sec + 5 minute output rate 0 bits/sec, 0 packets/sec + 17027741 packets input, 1089787530 bytes, 0 no buffer + Received 315 broadcasts (305 multicasts) + 0 runts, 0 giants, 0 throttles + 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored + 0 watchdog, 305 multicast, 0 pause input + 0 input packets with dribble condition detected + 79 packets output, 13095 bytes, 0 underruns + Output 35 broadcasts (35 multicasts) + 0 output errors, 0 collisions, 2 interface resets + 0 unknown protocol drops + 0 babbles, 0 late collision, 0 deferred + 0 lost carrier, 0 no carrier, 0 pause output + 0 output buffer failures, 0 output buffers swapped out show interfaces: response: - "Vlan1 is up, line protocol is up , Autostate Enabled\r\n Hardware is Ethernet\ diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/test_api_configure_cdp.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/test_api_configure_cdp.py index 8bb740e9b..3b89bbbf3 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/test_api_configure_cdp.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/cdp/configure/configure_cdp/test_api_configure_cdp.py @@ -33,3 +33,8 @@ def test_configure_cdp(self): result = configure_cdp(self.device, None, 300) expected_output = None self.assertEqual(result, expected_output) + + def test_configure_cdp_1(self): + result = configure_cdp(self.device, ['TenGigabitEthernet1/0/19', 'TenGigabitEthernet1/0/20']) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/mock_data/iosxe/mock_data.yaml index 9ee2e8440..daac4737f 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/mock_data/iosxe/mock_data.yaml @@ -5,16 +5,15 @@ configure: line console 0: new_state: configure_line no logging console: '' - sdm prefer custom commit: "sdm prefer custom commit\r\nChanges to the running\ - \ SDM preferences have been stored and will take effect on the next reload.\r\ - \n\r\n" - prompt: prom_SVL(config)# + pbr 27 priority 1: "pbr 27 priority 1\r\n" + sdm prefer custom acl: "sdm prefer custom acl\r\n" + prompt: C9500h-2-DUT(config)# configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: prom_SVL(config-line)# + prompt: C9500h-2-DUT(config-line)# connect: commands: ? '' @@ -34,4 +33,4 @@ execute: show version: '' term length 0: '' term width 0: '' - prompt: prom_SVL# + prompt: C9500h-2-DUT# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/test_api_configure_sdm_prefer_custom_template.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/test_api_configure_sdm_prefer_custom_template.py index 19dfda81e..21be18c64 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/test_api_configure_sdm_prefer_custom_template.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/custom_template/configure/configure_sdm_prefer_custom_template/test_api_configure_sdm_prefer_custom_template.py @@ -1,3 +1,4 @@ +import os import unittest from pyats.topology import loader from genie.libs.sdk.apis.iosxe.custom_template.configure import configure_sdm_prefer_custom_template @@ -7,21 +8,21 @@ class TestConfigureSdmPreferCustomTemplate(unittest.TestCase): @classmethod def setUpClass(self): - testbed = """ + testbed = f""" devices: - prom_SVL: + C9500h-2-DUT: connections: defaults: class: unicon.Unicon a: - command: mock_device_cli --os iosxe --mock_data_dir mock_data --state connect + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect protocol: unknown os: iosxe - platform: cat9k - type: '9500' + platform: c9300 + type: c9300 """ self.testbed = loader.load(testbed) - self.device = self.testbed.devices['prom_SVL'] + self.device = self.testbed.devices['C9500h-2-DUT'] self.device.connect( learn_hostname=True, init_config_commands=[], @@ -29,6 +30,6 @@ def setUpClass(self): ) def test_configure_sdm_prefer_custom_template(self): - result = configure_sdm_prefer_custom_template(self.device, 'commit') + result = configure_sdm_prefer_custom_template(self.device, 'acl', 'pbr', 27, 1) expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..81dda2e67 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: 9300_L2_DUT(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: 9300_L2_DUT(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + clear ip dhcp snooping statistics: + response: + - '' + response_type: circular + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: 9300_L2_DUT# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/test_api_clear_ip_dhcp_snooping_statistics.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/test_api_clear_ip_dhcp_snooping_statistics.py new file mode 100644 index 000000000..8f7b699ed --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/dhcp/execute/clear_ip_dhcp_snooping_statistics/test_api_clear_ip_dhcp_snooping_statistics.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.dhcp.execute import clear_ip_dhcp_snooping_statistics + + +class TestClearIpDhcpSnoopingStatistics(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + 9300_L2_DUT: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['9300_L2_DUT'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_clear_ip_dhcp_snooping_statistics(self): + result = clear_ip_dhcp_snooping_statistics(self.device) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/mock_data/iosxe/mock_data.yaml index f61faffdf..e20399534 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/mock_data/iosxe/mock_data.yaml @@ -5,13 +5,13 @@ configure: line console 0: new_state: configure_line no logging console: '' - prompt: mac2-sjc24(config)# + prompt: HA-9400-S2(config)# configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: mac2-sjc24(config-line)# + prompt: HA-9400-S2(config-line)# connect: commands: ? '' @@ -28,62 +28,90 @@ execute: new_state: configure config-transaction: new_state: configure - show firmware version all: + show firmware version switch 1 all: + response: + - "Slot Device Name / Model Firmware Version \ + \ \r\n--------- --------------------------------------- -----------------------------\ + \ \r\n 3 Supervisor Rommon (Active) 16.9.0.1 \ + \ \r\n 3 Supervisor CPLD 18041605\ + \ \r\n - Eth Lan Spi \ + \ 0x8000065a \r\n PS17 Fantray \ + \ 17041002 \r\n 1 Line Card\ + \ / C9400-LC-48U 0x0d (170503) \r\n 6 \ + \ Line Card / C9400-LC-48U 0x0d (170503) \ + \ \r\n PS3 Power Supply (PS PRI, PS_SEC, PS_I2C) (3.4, 3.3, 3.2)\ + \ \r\n PS4 Power Supply (PS PRI, PS_SEC, PS_I2C) (7.5,\ + \ 7.0, 6.0) \r\n 1 Line Card / C9400-LC-48U \ + \ 0xae025011 \r\n 3 SUP / C9400-SUP-1 \ + \ 0x0000521e \r\n 6 Line Card\ + \ / C9400-LC-48U 0xae025011 \r\n 1 \ + \ Line Card / C9400-LC-48U 0x32 \r\n 6 \ + \ Line Card / C9400-LC-48U 0x32" + response_type: circular + show firmware version switch 2 all: response: - "Slot Device Name / Model Firmware Version \ \ \r\n--------- --------------------------------------- -----------------------------\ \ \r\n 3 Supervisor Rommon (Active) 17.10.1r \ - \ \r\n 4 Supervisor Rommon (Standby) 17.10.1r\ - \ \r\n 3 Supervisor CPLD \ - \ 18041605 \r\n 4 Supervisor CPLD \ - \ 18041605 \r\n - Eth Lan Spi\ - \ 0x8000065a \r\n PS17 \ - \ Fantray 17050302 \r\ - \n 1 Line Card / C9400-LC-48T 0x0d (170503) \ - \ \r\n 6 Line Card / C9400-LC-24S 0x0d (170503)\ - \ \r\n 7 Line Card / C9400-LC-48T 0x0d\ - \ (170503) \r\n PS5 Power Supply (PS PRI, PS_SEC, PS_I2C)\ - \ (7.3, 7.0, 6.0) \r\n PS8 Power Supply (PS PRI, PS_SEC,\ - \ PS_I2C) (7.3, 7.0, 6.0) \r\n 1 Line Card / C9400-LC-48T\ - \ 0xae025011 \r\n 3 SUP / C9400-SUP-1\ - \ 0x0000521e \r\n 4 SUP /\ - \ C9400-SUP-1 0x0000521e \r\n 7 \ - \ Line Card / C9400-LC-48T 0xae025011 \ - \ \r\n 1 Line Card / C9400-LC-48T 0x31 \ - \ \r\n 6 Line Card / C9400-LC-24S N/A \ - \ \r\n 7 Line Card / C9400-LC-48T 0x32" + \ \r\n 3 Supervisor CPLD 18041605\ + \ \r\n - Eth Lan Spi \ + \ 0x8000065a \r\n PS17 Fantray \ + \ 17050302 \r\n 7 Line Card\ + \ / C9400-LC-48U 0x0d (170503) \r\n PS1 \ + \ Power Supply (PS PRI, PS_SEC, PS_I2C) (7.3, 7.0, 6.0) \ + \ \r\n 3 SUP / C9400-SUP-1 0x0000521e \ + \ \r\n 7 Line Card / C9400-LC-48U 0xae025011\ + \ \r\n 7 Line Card / C9400-LC-48U \ + \ 0x32" response_type: circular show module: response: - - "Chassis Type: C9407R \r\n\r\nMod Ports Card Type \ - \ Model Serial No.\r\n---+-----+--------------------------------------+--------------+--------------\r\ - \n1 48 48-Port 10/100/1000 (RJ-45) C9400-LC-48T JAE204700Q4\r\ - \n3 11 Supervisor 1 Module C9400-SUP-1 JAE210204A9\r\ - \n4 11 Supervisor 1 Module C9400-SUP-1 JAE2050073X\r\ - \n6 24 24-Port 1 Gigabit Ethernet (SFP) C9400-LC-24S JAE2143016D\r\ - \n7 48 48-Port 10/100/1000 (RJ-45) C9400-LC-48T JAE213205G9\r\ + - "Chassis Type: C9407R \r\n\r\nSwitch Number 1 \r\n\r\nMod Ports\ + \ Card Type Model Serial No.\r\n\ + ---+-----+--------------------------------------+--------------+--------------\r\ + \n1 48 48-Port UPOE 10/100/1000 (RJ-45) C9400-LC-48U JAE2132075Q\r\ + \n3 11 Supervisor 1 Module C9400-SUP-1 JAE2050072Q\r\ + \n6 48 48-Port UPOE 10/100/1000 (RJ-45) C9400-LC-48U JAE21270C22\r\ \n\r\nMod MAC addresses Hw Fw Sw \ \ Status\r\n---+--------------------------------+----+------------+------------------+--------\r\ - \n1 E4AA.5D54.13BC to E4AA.5D54.13EB 0.5 17.10.1r S2C \ - \ ok \r\n3 0C75.BD02.37EC to 0C75.BD02.37F6 0.5 17.10.1r \ - \ S2C ok \r\n4 0C75.BD02.37F6 to 0C75.BD02.3800\ - \ 0.5 17.10.1r S2C ok \r\n6 6CB2.AE42.C844\ - \ to 6CB2.AE42.C85B 0.2 17.10.1r S2C cfg-shut \r\n\ - 7 E4AA.5D59.FC98 to E4AA.5D59.FCC7 1.0 17.10.1r S2C \ - \ ok \r\n\r\nMod Redundancy Role Operating Mode Configured Mode\ - \ Redundancy Status\r\n---+-------------------+---------------+---------------+------------------\r\ + \n1 E4AA.5D5A.1D5C to E4AA.5D5A.1D8B 1.0 16.9.0.1 S2C \ + \ ok \r\n3 0C78.885D.8D6C to 0C78.885D.8D76 0.5 16.9.0.1 \ + \ S2C ok \r\n6 E4AA.5D59.AE2C to E4AA.5D59.AE5B\ + \ 1.0 16.9.0.1 S2C ok \r\n\r\nMod Redundancy\ + \ Role Operating Mode Configured Mode Redundancy Status\r\n---+-------------------+---------------+---------------+------------------\r\ + \n3 Standby sso sso Standby Hot \ + \ \r\n\r\nSwitch Number 2 \r\n\r\nMod Ports Card Type \ + \ Model Serial No.\r\n---+-----+--------------------------------------+--------------+--------------\r\ + \n3 11 Supervisor 1 Module C9400-SUP-1 JAE21390DN9\r\ + \n7 48 48-Port UPOE 10/100/1000 (RJ-45) C9400-LC-48U JAE213102H9\r\ + \n\r\nMod MAC addresses Hw Fw Sw \ + \ Status\r\n---+--------------------------------+----+------------+------------------+--------\r\ + \n3 380E.4D5A.992C to 380E.4D5A.9936 1.0 17.10.1r S2C \ + \ ok \r\n7 E4AA.5D59.DF04 to E4AA.5D59.DF33 1.0 17.10.1r \ + \ S2C ok \r\n\r\nMod Redundancy Role Operating\ + \ Mode Configured Mode Redundancy Status\r\n---+-------------------+---------------+---------------+------------------\r\ \n3 Active sso sso Active \ - \ \r\n4 Standby sso sso Standby Hot\ - \ \r\n\r\nChassis MAC address range: 44 addresses from 0c75.bd02.37c0\ - \ to 0c75.bd02.37eb" + \ \r\n\r\nChassis 1 MAC address range: 44 addresses from 0c78.885d.8d40\ + \ to 0c78.885d.8d6b \r\n\r\nChassis 2 MAC address range: 44 addresses from\ + \ 380e.4d5a.9900 to 380e.4d5a.992b" + response_type: circular + show switch: + response: + - "Switch/Stack Mac Address : 707d.b9cf.b018 - Local Mac Address\r\nMac persistency\ + \ wait time: Indefinite\r\n H/W\ + \ Current\r\nSwitch# Role Mac Address Priority Version State \r\ + \n-------------------------------------------------------------------------------------\r\ + \n 1 Standby e4aa.5d54.3ab0 1 V02 Ready \ + \ \r\n*2 Active 707d.b9cf.b018 1 V02 \ + \ Ready" response_type: circular show version: response: - "Cisco IOS XE Software, Version S2C\r\nCisco IOS Software [Dublin], Catalyst\ - \ L3 Switch Software (CAT9K_IOSXE), Experimental Version 17.12.20230405:062507\ - \ [BLD_POLARIS_DEV_S2C_20230405_060646:/nobackup/mcpre/s2c-build-ws 101]\r\ - \nCopyright (c) 1986-2023 by Cisco Systems, Inc.\r\nCompiled Tue 04-Apr-23\ - \ 23:25 by mcpre\r\n\r\n\r\nCisco IOS-XE software, Copyright (c) 2005-2023\ + \ L3 Switch Software (CAT9K_IOSXE), Experimental Version 17.13.20230823:125613\ + \ [BLD_POLARIS_DEV_S2C_20230823_122327:/nobackup/mcpre/s2c-build-ws 101]\r\ + \nCopyright (c) 1986-2023 by Cisco Systems, Inc.\r\nCompiled Wed 23-Aug-23\ + \ 05:56 by mcpre\r\n\r\n\r\nCisco IOS-XE software, Copyright (c) 2005-2023\ \ by cisco Systems, Inc.\r\nAll rights reserved. Certain components of Cisco\ \ IOS-XE software are\r\nlicensed under the GNU General Public License (\"\ GPL\") Version 2.0. The\r\nsoftware code licensed under GPL Version 2.0 is\ @@ -92,16 +120,15 @@ execute: \ more details, see the\r\ndocumentation or \"License Notice\" file accompanying\ \ the IOS-XE software,\r\nor the applicable URL provided on the flyer accompanying\ \ the IOS-XE\r\nsoftware.\r\n\r\n\r\nROM: IOS-XE ROMMON\r\nBOOTLDR: System\ - \ Bootstrap, Version 17.10.1r, RELEASE SOFTWARE (P)\r\n\r\nmac2-sjc24 uptime\ - \ is 20 hours, 52 minutes\r\nUptime for this control processor is 20 hours,\ - \ 53 minutes\r\nSystem returned to ROM by Reload Command at 10:03:12 UTC Thu\ - \ Apr 6 2023\r\nSystem restarted at 10:07:53 UTC Thu Apr 6 2023\r\nSystem\ - \ image file is \"bootflash:cat9k_iosxe.S2C.SSA.bin\"\r\nLast reload reason:\ - \ Reload Command\r\n\r\n\r\n\r\nThis product contains cryptographic features\ - \ and is subject to United\r\nStates and local country laws governing import,\ - \ export, transfer and\r\nuse. Delivery of Cisco cryptographic products does\ - \ not imply\r\nthird-party authority to import, export, distribute or use\ - \ encryption.\r\nImporters, exporters, distributors and users are responsible\ + \ Bootstrap, Version 17.10.1r, RELEASE SOFTWARE (P)\r\n\r\nHA-9400-S2 uptime\ + \ is 2 days, 19 hours, 40 minutes\r\nUptime for this control processor is\ + \ 2 days, 19 hours, 47 minutes\r\nSystem returned to ROM by Reload Command\ + \ at 03:28:25 PST Thu Sep 14 2023\r\nSystem image file is \"bootflash:cat9k_iosxe.S2C.SSA.bin\"\ + \r\nLast reload reason: Reload Command\r\n\r\n\r\n\r\nThis product contains\ + \ cryptographic features and is subject to United\r\nStates and local country\ + \ laws governing import, export, transfer and\r\nuse. Delivery of Cisco cryptographic\ + \ products does not imply\r\nthird-party authority to import, export, distribute\ + \ or use encryption.\r\nImporters, exporters, distributors and users are responsible\ \ for\r\ncompliance with U.S. and local country laws. By using this product\ \ you\r\nagree to comply with applicable laws and regulations. If you are\ \ unable\r\nto comply with U.S. and local laws, return this product immediately.\r\ @@ -118,19 +145,24 @@ execute: \ \r\nAIR License Level: AIR DNA Advantage\r\nNext reload\ \ AIR license Level: AIR DNA Advantage\r\n\r\n\r\nSmart Licensing Status:\ \ Smart Licensing Using Policy\r\n\r\ncisco C9407R (X86) processor (revision\ - \ V00) with 1825340K/6147K bytes of memory.\r\nProcessor board ID FXS1939Q442\r\ - \n3 Virtual Ethernet interfaces\r\n96 Gigabit Ethernet interfaces\r\n16 Ten\ + \ V01) with 1825857K/6147K bytes of memory.\r\nProcessor board ID FXS2136Q0E7\r\ + \n4 Virtual Ethernet interfaces\r\n144 Gigabit Ethernet interfaces\r\n16 Ten\ \ Gigabit Ethernet interfaces\r\n4 Forty Gigabit Ethernet interfaces\r\n32768K\ - \ bytes of non-volatile configuration memory.\r\n15990900K bytes of physical\ + \ bytes of non-volatile configuration memory.\r\n15988968K bytes of physical\ \ memory.\r\n11161600K bytes of Bootflash at bootflash:.\r\n1638400K bytes\ - \ of Crash Files at crashinfo:.\r\n11161600K bytes of Bootflash at bootflash-1-1:.\r\ - \n1638400K bytes of Crash Files at crashinfo-1-1:.\r\n\r\nBase Ethernet MAC\ - \ Address : 0c:75:bd:02:37:c0\r\nMotherboard Assembly Number \ - \ : 4855\r\nMotherboard Serial Number : FXS19380693\r\nModel Revision\ - \ Number : V02\r\nMotherboard Revision Number : 1\r\n\ + \ of Crash Files at crashinfo:.\r\n11161600K bytes of Bootflash at bootflash-1-0:.\r\ + \n1638400K bytes of Crash Files at crashinfo-1-0:.\r\n\r\nBase Ethernet MAC\ + \ Address : 38:0e:4d:5a:99:00\r\nMotherboard Assembly Number \ + \ : 4855\r\nMotherboard Serial Number : FXS2134006M\r\nModel Revision\ + \ Number : V02\r\nMotherboard Revision Number : 3\r\n\ Model Number : C9407R \r\nSystem Serial\ - \ Number : FXS1939Q442" + \ Number : FXS2136Q0E7\r\n\r\nSwitch 01\r\n---------\r\nBase\ + \ Ethernet MAC Address : 0c:78:88:5d:8d:40\r\nMotherboard Assembly\ + \ Number : 4855\r\nMotherboard Serial Number : FXS193109T2\r\ + \nModel Revision Number : V02\r\nMotherboard Revision Number\ + \ : 1\r\nModel Number : C9407R \r\ + \nSystem Serial Number : FXS1932Q207" response_type: circular term length 0: '' term width 0: '' - prompt: mac2-sjc24# + prompt: HA-9400-S2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/test_api_get_firmware_version.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/test_api_get_firmware_version.py index 8547fbf73..74987c6c6 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/test_api_get_firmware_version.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_firmware_version/test_api_get_firmware_version.py @@ -10,7 +10,7 @@ class TestGetFirmwareVersion(unittest.TestCase): def setUpClass(self): testbed = f""" devices: - mac2-sjc24: + HA-9400-S2: connections: defaults: class: unicon.Unicon @@ -18,11 +18,11 @@ def setUpClass(self): command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect protocol: unknown os: iosxe - platform: cat9k + platform: iosxe type: iosxe """ self.testbed = loader.load(testbed) - self.device = self.testbed.devices['mac2-sjc24'] + self.device = self.testbed.devices['HA-9400-S2'] self.device.connect( learn_hostname=True, init_config_commands=[], @@ -31,20 +31,6 @@ def setUpClass(self): def test_get_firmware_version(self): result = get_firmware_version(self.device) - expected_output = {'firmware_version': [['17050302'], - ['17.10.1r', - '17.10.1r', - '(7.3, 7.0, 6.0)', - '(7.3, 7.0, 6.0)', - '17.10.1r', - '17.10.1r', - '17.10.1r']], - 'name': [['FanTray'], - ['Slot 3 Supervisor', - 'Slot 4 Supervisor', - 'PowerSupplyModule5', - 'PowerSupplyModule8', - 'Slot 1 Linecard', - 'Slot 6 Linecard', - 'Slot 7 Linecard']]} + expected_output = {'firmware_version': [['17050302'], ['17.10.1r', '(7.3, 7.0, 6.0)']], + 'name': [['Fan2/Tray'], ['Switch 2 Slot 3 Supervisor', 'PowerSupplyModule1']]} self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..4b794ba86 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,65 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: HA-9400-S2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: HA-9400-S2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show module: + response: + - "Chassis Type: C9407R \r\n\r\nSwitch Number 1 \r\n\r\nMod Ports\ + \ Card Type Model Serial No.\r\n\ + ---+-----+--------------------------------------+--------------+--------------\r\ + \n1 48 48-Port UPOE 10/100/1000 (RJ-45) C9400-LC-48U JAE2132075Q\r\ + \n3 11 Supervisor 1 Module C9400-SUP-1 JAE2050072Q\r\ + \n6 48 48-Port UPOE 10/100/1000 (RJ-45) C9400-LC-48U JAE21270C22\r\ + \n\r\nMod MAC addresses Hw Fw Sw \ + \ Status\r\n---+--------------------------------+----+------------+------------------+--------\r\ + \n1 E4AA.5D5A.1D5C to E4AA.5D5A.1D8B 1.0 16.9.0.1 S2C \ + \ ok \r\n3 0C78.885D.8D6C to 0C78.885D.8D76 0.5 16.9.0.1 \ + \ S2C ok \r\n6 E4AA.5D59.AE2C to E4AA.5D59.AE5B\ + \ 1.0 16.9.0.1 S2C ok \r\n\r\nMod Redundancy\ + \ Role Operating Mode Configured Mode Redundancy Status\r\n---+-------------------+---------------+---------------+------------------\r\ + \n3 Standby sso sso Standby Hot \ + \ \r\n\r\nSwitch Number 2 \r\n\r\nMod Ports Card Type \ + \ Model Serial No.\r\n---+-----+--------------------------------------+--------------+--------------\r\ + \n3 11 Supervisor 1 Module C9400-SUP-1 JAE21390DN9\r\ + \n7 48 48-Port UPOE 10/100/1000 (RJ-45) C9400-LC-48U JAE213102H9\r\ + \n\r\nMod MAC addresses Hw Fw Sw \ + \ Status\r\n---+--------------------------------+----+------------+------------------+--------\r\ + \n3 380E.4D5A.992C to 380E.4D5A.9936 1.0 17.10.1r S2C \ + \ ok \r\n7 E4AA.5D59.DF04 to E4AA.5D59.DF33 1.0 17.10.1r \ + \ S2C ok \r\n\r\nMod Redundancy Role Operating\ + \ Mode Configured Mode Redundancy Status\r\n---+-------------------+---------------+---------------+------------------\r\ + \n3 Active sso sso Active \ + \ \r\n\r\nChassis 1 MAC address range: 44 addresses from 0c78.885d.8d40\ + \ to 0c78.885d.8d6b \r\n\r\nChassis 2 MAC address range: 44 addresses from\ + \ 380e.4d5a.9900 to 380e.4d5a.992b" + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: HA-9400-S2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/test_api_get_module.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/test_api_get_module.py new file mode 100644 index 000000000..deaf432af --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/firmware_version/get/get_module/test_api_get_module.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.firmware_version.get import get_module + + +class TestGetModule(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + HA-9400-S2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: iosxe + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['HA-9400-S2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_get_module(self): + result = get_module(self.device) + expected_output = [] + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/mock_data/iosxe/mock_data.yaml index 4f2dec502..a360200e9 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/mock_data/iosxe/mock_data.yaml @@ -1,28 +1,30 @@ configure: commands: - collect counter bytes long: "collect counter bytes long\r\n" - collect counter packets long: "collect counter packets long\r\n" - collect policy firewall event: "collect policy firewall event\r\n" - collect transport tcp flags: "collect transport tcp flags\r\n" + collect connection client counter packets long: "collect connection client counter\ + \ packets long\r\n" + collect connection initiator: "collect connection initiator\r\n" + collect connection new-connections: "collect connection new-connections\r\n" + collect flow direction: "collect flow direction\r\n" + collect timestamp absolute first: "collect timestamp absolute first\r\n" end: new_state: execute - flow record dnacrecord: "flow record dnacrecord\r\n" + flow record dnacrecord_1: "flow record dnacrecord_1\r\n" line console 0: new_state: configure_line - match datalink mac source address input: "match datalink mac source address input\r\ + match application name: "match application name\r\n" + match connection client ipv4 address: "match connection client ipv4 address\r\n" + match connection client transport port: "match connection client transport port\r\ \n" - match interface input: "match interface input\r\n" - match ipv4 protocol: "match ipv4 protocol\r\n" - match ipv4 source address: "match ipv4 source address\r\n" - match transport source-port: "match transport source-port\r\n" + match flow observation point: "match flow observation point\r\n" + match ipv4 version: "match ipv4 version\r\n" no logging console: '' - prompt: Starfleet(config)# + prompt: Switch(config)# configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: Starfleet(config-line)# + prompt: Switch(config-line)# connect: commands: ? '' @@ -42,4 +44,4 @@ execute: show version: '' term length 0: '' term width 0: '' - prompt: Starfleet# + prompt: Switch# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/test_api_configure_fnf_flow_record.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/test_api_configure_fnf_flow_record.py index 0d7577c7c..f67f75899 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/test_api_configure_fnf_flow_record.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/flow/configure/configure_fnf_flow_record/test_api_configure_fnf_flow_record.py @@ -10,7 +10,7 @@ class TestConfigureFnfFlowRecord(unittest.TestCase): def setUpClass(self): testbed = f""" devices: - Starfleet: + switch_9300: connections: defaults: class: unicon.Unicon @@ -18,11 +18,11 @@ def setUpClass(self): command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect protocol: unknown os: iosxe - platform: c9500 - type: c9500 + platform: c9300 + type: c9300 """ self.testbed = loader.load(testbed) - self.device = self.testbed.devices['Starfleet'] + self.device = self.testbed.devices['switch_9300'] self.device.connect( learn_hostname=True, init_config_commands=[], @@ -30,6 +30,6 @@ def setUpClass(self): ) def test_configure_fnf_flow_record(self): - result = configure_fnf_flow_record(self.device, 'dnacrecord', True, 'mac', 'source', 'input', 'input', 'protocol', True, True, 'source-port', 'source', True, True) + result = configure_fnf_flow_record(self.device, 'dnacrecord_1', False, None, None, None, None, 'version', False, False, None, None, False, False, True, 'client', 'ipv4', True, 'first', True, True, True, 'packets') expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..44bc20488 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,42 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: ENC(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: ENC(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + hw-module bootflash security-lock disable: + response: + - SUCCESS + response_type: circular + hw-module bootflash security-lock enable: + response: + - SUCCESS + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: ENC# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/test_api_hw_module_filesystem_security_lock.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/test_api_hw_module_filesystem_security_lock.py new file mode 100644 index 000000000..7730de868 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/hw_module/execute/hw_module_filesystem_security_lock/test_api_hw_module_filesystem_security_lock.py @@ -0,0 +1,40 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.hw_module.execute import hw_module_filesystem_security_lock + + +class TestHwModuleFilesystemSecurityLock(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + ENC: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat8k + type: router + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['ENC'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_hw_module_filesystem_security_lock(self): + result = hw_module_filesystem_security_lock(self.device, 'bootflash', 'disable') + expected_output = 'SUCCESS' + self.assertEqual(result, expected_output) + + def test_hw_module_filesystem_security_lock_1(self): + result = hw_module_filesystem_security_lock(self.device, 'bootflash', 'enable') + expected_output = 'SUCCESS' + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..603f4b2ca --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no ip igmp snooping querier max-response-time 25: "no ip igmp snooping querier\ + \ max-response-time 25\r\n" + no logging console: '' + prompt: stack3-nyquist-1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: stack3-nyquist-1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: stack3-nyquist-1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/test_api_unconfigure_ip_igmp_querier_max_response_time.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/test_api_unconfigure_ip_igmp_querier_max_response_time.py new file mode 100644 index 000000000..28575b92d --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_max_response_time/test_api_unconfigure_ip_igmp_querier_max_response_time.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.igmp_snooping.configure import unconfigure_ip_igmp_querier_max_response_time + + +class TestUnconfigureIpIgmpQuerierMaxResponseTime(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + stack3-nyquist-1: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['stack3-nyquist-1'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_ip_igmp_querier_max_response_time(self): + result = unconfigure_ip_igmp_querier_max_response_time(self.device, 'max-response-time', '25') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..d858e35b4 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no ip igmp snooping querier query-interval 100: "no ip igmp snooping querier query-interval\ + \ 100\r\n" + no logging console: '' + prompt: stack3-nyquist-1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: stack3-nyquist-1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: stack3-nyquist-1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/test_api_unconfigure_ip_igmp_querier_query_interval.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/test_api_unconfigure_ip_igmp_querier_query_interval.py new file mode 100644 index 000000000..750df0f2f --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_query_interval/test_api_unconfigure_ip_igmp_querier_query_interval.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.igmp_snooping.configure import unconfigure_ip_igmp_querier_query_interval + + +class TestUnconfigureIpIgmpQuerierQueryInterval(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + stack3-nyquist-1: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['stack3-nyquist-1'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_ip_igmp_querier_query_interval(self): + result = unconfigure_ip_igmp_querier_query_interval(self.device, 'query-interval', '100') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..35f198e1b --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no ip igmp snooping querier tcn query count 10: "no ip igmp snooping querier tcn\ + \ query count 10\r\n" + no logging console: '' + prompt: stack3-nyquist-1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: stack3-nyquist-1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: stack3-nyquist-1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/test_api_unconfigure_ip_igmp_querier_tcn_query_count.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/test_api_unconfigure_ip_igmp_querier_tcn_query_count.py new file mode 100644 index 000000000..3d390f237 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_count/test_api_unconfigure_ip_igmp_querier_tcn_query_count.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.igmp_snooping.configure import unconfigure_ip_igmp_querier_tcn_query_count + + +class TestUnconfigureIpIgmpQuerierTcnQueryCount(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + stack3-nyquist-1: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['stack3-nyquist-1'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_ip_igmp_querier_tcn_query_count(self): + result = unconfigure_ip_igmp_querier_tcn_query_count(self.device, 'tcn', 'count', '10') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..9cedbc6d2 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no ip igmp snooping querier tcn query interval 255: "no ip igmp snooping querier\ + \ tcn query interval 255\r\n" + no logging console: '' + prompt: stack3-nyquist-1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: stack3-nyquist-1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: stack3-nyquist-1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/test_api_unconfigure_ip_igmp_querier_tcn_query_interval.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/test_api_unconfigure_ip_igmp_querier_tcn_query_interval.py new file mode 100644 index 000000000..80f2f98ad --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_tcn_query_interval/test_api_unconfigure_ip_igmp_querier_tcn_query_interval.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.igmp_snooping.configure import unconfigure_ip_igmp_querier_tcn_query_interval + + +class TestUnconfigureIpIgmpQuerierTcnQueryInterval(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + stack3-nyquist-1: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['stack3-nyquist-1'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_ip_igmp_querier_tcn_query_interval(self): + result = unconfigure_ip_igmp_querier_tcn_query_interval(self.device, 'tcn', 'interval', '255') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..2e23acbab --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no ip igmp snooping querier timer expiry 300: "no ip igmp snooping querier timer\ + \ expiry 300\r\n" + no logging console: '' + prompt: stack3-nyquist-1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: stack3-nyquist-1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: stack3-nyquist-1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/test_api_unconfigure_ip_igmp_querier_timer_expiry.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/test_api_unconfigure_ip_igmp_querier_timer_expiry.py new file mode 100644 index 000000000..468979aed --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/igmp_snooping/configure/unconfigure_ip_igmp_querier_timer_expiry/test_api_unconfigure_ip_igmp_querier_timer_expiry.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.igmp_snooping.configure import unconfigure_ip_igmp_querier_timer_expiry + + +class TestUnconfigureIpIgmpQuerierTimerExpiry(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + stack3-nyquist-1: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['stack3-nyquist-1'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_ip_igmp_querier_timer_expiry(self): + result = unconfigure_ip_igmp_querier_timer_expiry(self.device, '300') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/mock_data/iosxe/mock_data.yaml index c3e85ead1..e3ac173db 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/mock_data/iosxe/mock_data.yaml @@ -2,22 +2,20 @@ configure: commands: end: new_state: execute - interface ten1/1/0/5: "interface ten1/1/0/5\r\n" - line console: - new_state: configure_line + interface TenGigabitEthernet1/0/13: "interface TenGigabitEthernet1/0/13\r\n" line console 0: new_state: configure_line no logging console: '' - switchport access vlan 150: "switchport access vlan 150\r\n" - prompt: m4a(config)# + switchport: "switchport\r\n" + switchport access vlan 10: "switchport access vlan 10\r\n" + switchport mode access: "switchport mode access\r\n" + prompt: 9300-24UX-NBR1(config)# configure_line: commands: end: new_state: execute exec-timeout 0: '' - line vty: '' - terminal width 511: '' - prompt: m4a(config-line)# + prompt: 9300-24UX-NBR1(config-line)# connect: commands: ? '' @@ -37,6 +35,4 @@ execute: show version: '' term length 0: '' term width 0: '' - term width 511: '' - terminal session-timeout 0: '' - prompt: m4a# + prompt: 9300-24UX-NBR1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/test_api_configure_interface_switchport_access_vlan.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/test_api_configure_interface_switchport_access_vlan.py index 37de31a7b..614a4cea5 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/test_api_configure_interface_switchport_access_vlan.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_interface_switchport_access_vlan/test_api_configure_interface_switchport_access_vlan.py @@ -1,3 +1,4 @@ +import os import unittest from pyats.topology import loader from genie.libs.sdk.apis.iosxe.interface.configure import configure_interface_switchport_access_vlan @@ -7,21 +8,21 @@ class TestConfigureInterfaceSwitchportAccessVlan(unittest.TestCase): @classmethod def setUpClass(self): - testbed = """ + testbed = f""" devices: - m4a: + 9300-24UX-NBR1: connections: defaults: class: unicon.Unicon a: - command: mock_device_cli --os iosxe --mock_data_dir mock_data --state connect + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect protocol: unknown os: iosxe - platform: cat9k - type: c9400 + platform: c9300 + type: c9300 """ self.testbed = loader.load(testbed) - self.device = self.testbed.devices['m4a'] + self.device = self.testbed.devices['9300-24UX-NBR1'] self.device.connect( learn_hostname=True, init_config_commands=[], @@ -29,6 +30,6 @@ def setUpClass(self): ) def test_configure_interface_switchport_access_vlan(self): - result = configure_interface_switchport_access_vlan(device=self.device, interface='ten1/1/0/5', vlan='150') + result = configure_interface_switchport_access_vlan(self.device, 'TenGigabitEthernet1/0/13', '10', 'access') expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..f246520c7 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,43 @@ +configure: + commands: + dialer pool-member 1: "dialer pool-member 1\r\n" + encapsulation aal5snap: "encapsulation aal5snap\r\n" + end: + new_state: execute + interface ATM0/2/0.10 point-to-point: "interface ATM0/2/0.10 point-to-point\r\n" + ip address 10.10.11.11 255.255.255.0: "ip address 10.10.11.11 255.255.255.0\r\n" + ipv6 address 5000::1/64: "ipv6 address 5000::1/64\r\n" + ipv6 enable: "ipv6 enable\r\n" + line console 0: + new_state: configure_line + no logging console: '' + protocol ppp dialer: "protocol ppp dialer\r\n" + pvc 10/100: "pvc 10/100\r\n" + vbr-rt 500 500 1: "vbr-rt 500 500 1\r\n" + prompt: C1113-8P_pkumarmu(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: C1113-8P_pkumarmu(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: C1113-8P_pkumarmu# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/test_api_configure_ip_on_atm_interface.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/test_api_configure_ip_on_atm_interface.py new file mode 100644 index 000000000..02e487b9c --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_ip_on_atm_interface/test_api_configure_ip_on_atm_interface.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.interface.configure import configure_ip_on_atm_interface + + +class TestConfigureIpOnAtmInterface(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + C1113-8P_pkumarmu: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: router + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['C1113-8P_pkumarmu'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_ip_on_atm_interface(self): + result = configure_ip_on_atm_interface(self.device, 'ATM0/2/0', '10/100', '10', '10.10.11.11', '255.255.255.0', '5000::1/64', 'aal5snap', 'ppp', '1', 'vbr-rt', 500, '500', '1') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/mock_data/iosxe/mock_data.yaml index 9bec853c6..c41c58165 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/mock_data/iosxe/mock_data.yaml @@ -2,12 +2,13 @@ configure: commands: end: new_state: execute - interface GigabitEthernet0/0/0: "interface GigabitEthernet0/0/0\r\n" + interface Ethernet0/2/0: "interface Ethernet0/2/0\r\n" line console 0: new_state: configure_line no logging console: '' pppoe enable group global: "pppoe enable group global\r\n" pppoe-client dial-pool-number 100: "pppoe-client dial-pool-number 100\r\n" + pppoe-client ppp-max-payload 1590: "pppoe-client ppp-max-payload 1590\r\n" prompt: C1113-8P_pkumarmu(config)# configure_line: commands: diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/test_api_configure_pppoe_enable_interface.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/test_api_configure_pppoe_enable_interface.py index e6299f93f..8abb68b49 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/test_api_configure_pppoe_enable_interface.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_pppoe_enable_interface/test_api_configure_pppoe_enable_interface.py @@ -30,6 +30,6 @@ def setUpClass(self): ) def test_configure_pppoe_enable_interface(self): - result = configure_pppoe_enable_interface(self.device, 'GigabitEthernet0/0/0', 'global', '100') + result = configure_pppoe_enable_interface(self.device, 'Ethernet0/2/0', 'global', '100', '1590') expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/mock_data/iosxe/mock_data.yaml index b3c42df08..82dc35c31 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/mock_data/iosxe/mock_data.yaml @@ -2,12 +2,12 @@ configure: commands: end: new_state: execute - interface Virtual-Template 1: "interface Virtual-Template 1\r\n" - ip unnumbered GigabitEthernet0/0/0: "ip unnumbered GigabitEthernet0/0/0\r\n" + interface Virtual-Template 100: "interface Virtual-Template 100\r\n" + ip unnumbered Loopback2: "ip unnumbered Loopback2\r\n" line console 0: new_state: configure_line no logging console: '' - peer default ip address pool ipv4_pool_100: "peer default ip address pool ipv4_pool_100\r\ + peer default ipv6 pool ipv6_local_pool: "peer default ipv6 pool ipv6_local_pool\r\ \n" prompt: C1113-8P_pkumarmu(config)# configure_line: diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/test_api_configure_virtual_template.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/test_api_configure_virtual_template.py index 97e8ce973..b5044676a 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/test_api_configure_virtual_template.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/configure_virtual_template/test_api_configure_virtual_template.py @@ -30,6 +30,6 @@ def setUpClass(self): ) def test_configure_virtual_template(self): - result = configure_virtual_template(self.device, '1', 'GigabitEthernet0/0/0', False, None, False, False, 0, 0, '', '', False, False, 'ipv4_pool_100') + result = configure_virtual_template(self.device, '100', 'Loopback2', False, None, False, False, 0, 0, '', '', False, False, None, 'ipv6_local_pool') expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..724077b3f --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,40 @@ +configure: + commands: + end: + new_state: execute + interface ATM0/2/0.10 point-to-point: "interface ATM0/2/0.10 point-to-point\r\n" + line console 0: + new_state: configure_line + no ip address 10.10.11.11 255.255.255.0: "no ip address 10.10.11.11 255.255.255.0\r\ + \n" + no ipv6 address 5000::1/64: "no ipv6 address 5000::1/64\r\n" + no ipv6 enable: "no ipv6 enable\r\n" + no logging console: '' + no pvc 10/100: "no pvc 10/100\r\n" + prompt: C1113-8P_pkumarmu(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: C1113-8P_pkumarmu(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: C1113-8P_pkumarmu# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/test_api_unconfigure_ip_on_atm_interface.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/test_api_unconfigure_ip_on_atm_interface.py new file mode 100644 index 000000000..deecb80df --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_ip_on_atm_interface/test_api_unconfigure_ip_on_atm_interface.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.interface.configure import unconfigure_ip_on_atm_interface + + +class TestUnconfigureIpOnAtmInterface(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + C1113-8P_pkumarmu: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: router + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['C1113-8P_pkumarmu'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_ip_on_atm_interface(self): + result = unconfigure_ip_on_atm_interface(self.device, 'ATM0/2/0', '10/100', '10', '10.10.11.11', '255.255.255.0', '5000::1/64') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..f27819ce2 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + interface Ethernet0/2/0: "interface Ethernet0/2/0\r\n" + line console 0: + new_state: configure_line + no logging console: '' + no pppoe enable group global: "no pppoe enable group global\r\n" + no pppoe-client dial-pool-number 100: "no pppoe-client dial-pool-number 100\r\n" + no pppoe-client ppp-max-payload 1590: "no pppoe-client ppp-max-payload 1590\r\n" + prompt: C1113-8P_pkumarmu(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: C1113-8P_pkumarmu(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: C1113-8P_pkumarmu# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/test_api_unconfigure_pppoe_enable_interface.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/test_api_unconfigure_pppoe_enable_interface.py new file mode 100644 index 000000000..974bba859 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/configure/unconfigure_pppoe_enable_interface/test_api_unconfigure_pppoe_enable_interface.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.interface.configure import unconfigure_pppoe_enable_interface + + +class TestUnconfigurePppoeEnableInterface(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + C1113-8P_pkumarmu: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: router + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['C1113-8P_pkumarmu'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_pppoe_enable_interface(self): + result = unconfigure_pppoe_enable_interface(self.device, 'Ethernet0/2/0', 'global', '100', '1590') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/get/get_interface_information/test_api_get_interface_information.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/get/get_interface_information/test_api_get_interface_information.py index 2c9825ab7..081f0dbc3 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/get/get_interface_information/test_api_get_interface_information.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/get/get_interface_information/test_api_get_interface_information.py @@ -30,7 +30,7 @@ def setUpClass(self): def test_get_interface_information(self): result = get_interface_information(self.device, ['GigabitEthernet1']) - expected_output = {'GigabitEthernet1': {'GigabitEthernet1': {'arp_timeout': '04:00:00', + expected_output = {'GigabitEthernet1': {'arp_timeout': '04:00:00', 'arp_type': 'arpa', 'auto_negotiate': True, 'bandwidth': 1000000, @@ -103,5 +103,5 @@ def test_get_interface_information(self): 'reliability': '255/255', 'rxload': '1/255', 'txload': '1/255', - 'type': 'CSR vNIC'}}} + 'type': 'CSR vNIC'}} self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/verify/verify_interface_capabilities_multiple_media_types/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/verify/verify_interface_capabilities_multiple_media_types/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..8a7791224 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/verify/verify_interface_capabilities_multiple_media_types/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,49 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: IE-3300-8P2S-E3(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: IE-3300-8P2S-E3(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show interfaces GigabitEthernet1/4 capabilities: + response: + - "GigabitEthernet1/4\r\n Model: IE-3300-8P2S\r\n Type: \ + \ 10/100/1000BaseTX\r\n Speed: 10,100,1000,auto\r\ + \n Duplex: half,full,auto\r\n Trunk encap. type: 802.1Q,ISL\r\ + \n Trunk mode: on,off,desirable,nonegotiate\r\n Channel: \ + \ yes\r\n Broadcast suppression: percentage(0-100)\r\n Flowcontrol:\ + \ rx-(off,on,desired),tx-(none)\r\n Fast Start: yes\r\ + \n QoS scheduling: rx-(not configurable on per port basis),\r\n \ + \ tx-(1p8q2t)\r\n CoS rewrite: yes\r\n ToS\ + \ rewrite: yes\r\n UDLD: yes\r\n Inline power:\ + \ yes\r\n SPAN: source/destination\r\n PortSecure:\ + \ yes\r\n Dot1x: yes\r\n Multiple Media Types:\ + \ rj45" + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: IE-3300-8P2S-E3# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/verify/verify_interfaces_transceiver_supported/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/verify/verify_interfaces_transceiver_supported/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..966d6f584 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/interface/verify/verify_interfaces_transceiver_supported/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,69 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: IE-3300-8P2S-E3(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: IE-3300-8P2S-E3(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show interfaces transceiver supported-list: + response: + - "Transceiver Type Cisco p/n min version \r\n \ + \ supporting DOM \r\n------------------ -------------------------\r\ + \n\r\n GLC-FE-100FX-RGD ALL \r\n GLC-FE-100LX-RGD\ + \ ALL \r\n GLC-FE-100FX ALL \ + \ \r\n GLC-FE-100LX ALL \ + \ \r\n GLC-FE-100EX ALL \r\n GLC-FE-100ZX\ + \ ALL \r\n GLC-FE-100BX-U ALL\ + \ \r\n GLC-FE-100BX-D ALL \ + \ \r\n GLC-SX-MM-RGD ALL \r\n GLC-LX-SM-RGD\ + \ ALL \r\n GLC-ZX-SM-RGD ALL\ + \ \r\n SFP-GE-S ALL \ + \ \r\n SFP-GE-L ALL \r\n SFP-GE-Z\ + \ ALL \r\n GLC-BX-U \ + \ ALL \r\n GLC-BX-D ALL \ + \ \r\n GLC-BX-U-I ALL \r\n\ + \ GLC-BX-D-I ALL \r\n GLC-SX-MM \ + \ NONE \r\n GLC-LH-SM NONE\ + \ \r\n GLC-ZX-SM NONE \ + \ \r\n GLC-T NONE \r\n GLC-TE\ + \ NONE \r\n GLC-T-RGD \ + \ NONE \r\n GLC-EX-SMD ALL \ + \ \r\n GLC-SX-MMD ALL \r\ + \n GLC-LH-SMD ALL \r\n GLC-ZX-SMD \ + \ ALL \r\n GLC-BX40-D-I ALL\ + \ \r\n GLC-BX40-DA-I ALL \ + \ \r\n GLC-BX40-U-I ALL \r\n GLC-BX80-D-I\ + \ ALL \r\n GLC-BX80-U-I ALL\ + \ \r\n SFP-CWDM-1470 ALL \ + \ \r\n SFP-CWDM-1490 ALL \r\n SFP-CWDM-1530\ + \ ALL \r\n SFP-CWDM-1610 ALL\ + \ \r\n SFP-DWDM-3033 ALL \ + \ \r\n SFP-DWDM-3112 ALL" + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: IE-3300-8P2S-E3# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..3e9e6ee5e --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,42 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: javelin-morph-sj-full3-dut1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: javelin-morph-sj-full3-dut1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + clear lacp 1 counters: + response: + - '' + response_type: circular + clear lacp counters: + response: + - '' + response_type: circular + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: javelin-morph-sj-full3-dut1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/test_api_clear_lacp_counters.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/test_api_clear_lacp_counters.py new file mode 100644 index 000000000..6cd302a74 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/lacp/configure/clear_lacp_counters/test_api_clear_lacp_counters.py @@ -0,0 +1,40 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.lacp.configure import clear_lacp_counters + + +class TestClearLacpCounters(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + javelin-morph-sj-full3-dut1: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: router + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['javelin-morph-sj-full3-dut1'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_clear_lacp_counters(self): + result = clear_lacp_counters(self.device, 1) + expected_output = None + self.assertEqual(result, expected_output) + + def test_clear_lacp_counters_1(self): + result = clear_lacp_counters(self.device, None) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..db8931e5d --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: T4-9500-SVL2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T4-9500-SVL2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + clear mdns-sd cache remote: + response: + - '' + response_type: circular + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T4-9500-SVL2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/test_api_remove_routing_ip_route.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/test_api_clear_mdns_cache_remote.py similarity index 66% rename from pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/test_api_remove_routing_ip_route.py rename to pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/test_api_clear_mdns_cache_remote.py index 615ff6dc7..76b941d39 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/test_api_remove_routing_ip_route.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/clear_mdns_cache_remote/test_api_clear_mdns_cache_remote.py @@ -1,16 +1,16 @@ import os import unittest from pyats.topology import loader -from genie.libs.sdk.apis.iosxe.routing.configure import remove_routing_ip_route +from genie.libs.sdk.apis.iosxe.mdns.configure import clear_mdns_cache_remote -class TestRemoveRoutingIpRoute(unittest.TestCase): +class TestClearMdnsCacheRemote(unittest.TestCase): @classmethod def setUpClass(self): testbed = f""" devices: - n08HA: + T4-9500-SVL2: connections: defaults: class: unicon.Unicon @@ -18,18 +18,18 @@ def setUpClass(self): command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect protocol: unknown os: iosxe - platform: c9500 + platform: cat9k type: c9500 """ self.testbed = loader.load(testbed) - self.device = self.testbed.devices['n08HA'] + self.device = self.testbed.devices['T4-9500-SVL2'] self.device.connect( learn_hostname=True, init_config_commands=[], init_exec_commands=[] ) - def test_remove_routing_ip_route(self): - result = remove_routing_ip_route(self.device, '1.1.1.1', '255.255.255.255', None, None) + def test_clear_mdns_cache_remote(self): + result = clear_mdns_cache_remote(self.device) expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..f055eee66 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,37 @@ +configure: + commands: + end: + new_state: execute + global-service-buffer enable: "global-service-buffer enable\r\n" + line console 0: + new_state: configure_line + no logging console: '' + service-export mdns-sd controller test: "service-export mdns-sd controller test\r\ + \n" + prompt: T3-9500-S2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T3-9500-S2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T3-9500-S2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/test_api_configure_mdns_global_service_buffer.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/test_api_configure_mdns_global_service_buffer.py new file mode 100644 index 000000000..9afef7401 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_global_service_buffer/test_api_configure_mdns_global_service_buffer.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import configure_mdns_global_service_buffer + + +class TestConfigureMdnsGlobalServiceBuffer(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T3-9500-S2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T3-9500-S2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_mdns_global_service_buffer(self): + result = configure_mdns_global_service_buffer(self.device, 'test', 'enable') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..49cf08683 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + mdns-sd gateway: "mdns-sd gateway\r\n" + no logging console: '' + remote-cache-enable: "remote-cache-enable\r\n" + prompt: T4-9500-SVL2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T4-9500-SVL2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T4-9500-SVL2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/test_api_configure_mdns_remote_cache_enable.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/test_api_configure_mdns_remote_cache_enable.py new file mode 100644 index 000000000..523bca3ab --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_enable/test_api_configure_mdns_remote_cache_enable.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import configure_mdns_remote_cache_enable + + +class TestConfigureMdnsRemoteCacheEnable(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T4-9500-SVL2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T4-9500-SVL2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_mdns_remote_cache_enable(self): + result = configure_mdns_remote_cache_enable(self.device) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..42e47c444 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + mdns-sd gateway: "mdns-sd gateway\r\n" + no logging console: '' + remote-cache-max-limit 1000: "remote-cache-max-limit 1000\r\n" + prompt: T4-9500-SVL2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T4-9500-SVL2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T4-9500-SVL2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/test_api_configure_mdns_remote_cache_max_limit.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/test_api_configure_mdns_remote_cache_max_limit.py new file mode 100644 index 000000000..0c59f552c --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_cache_max_limit/test_api_configure_mdns_remote_cache_max_limit.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import configure_mdns_remote_cache_max_limit + + +class TestConfigureMdnsRemoteCacheMaxLimit(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T4-9500-SVL2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T4-9500-SVL2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_mdns_remote_cache_max_limit(self): + result = configure_mdns_remote_cache_max_limit(self.device, 1000) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..3fd014919 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + mdns-sd gateway: "mdns-sd gateway\r\n" + no logging console: '' + remote-cache-purge-timer 300: "remote-cache-purge-timer 300\r\n" + prompt: T4-9500-SVL2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T4-9500-SVL2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T4-9500-SVL2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/test_api_configure_mdns_remote_purge_timer.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/test_api_configure_mdns_remote_purge_timer.py new file mode 100644 index 000000000..3084dd2f5 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/configure_mdns_remote_purge_timer/test_api_configure_mdns_remote_purge_timer.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import configure_mdns_remote_purge_timer + + +class TestConfigureMdnsRemotePurgeTimer(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T4-9500-SVL2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T4-9500-SVL2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_mdns_remote_purge_timer(self): + result = configure_mdns_remote_purge_timer(self.device, 300) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..318550ce5 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,37 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no global-service-buffer: "no global-service-buffer\r\n" + no logging console: '' + service-export mdns-sd controller test: "service-export mdns-sd controller test\r\ + \n" + prompt: T3-9500-S2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T3-9500-S2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T3-9500-S2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/test_api_unconfigure_mdns_global_service_buffer.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/test_api_unconfigure_mdns_global_service_buffer.py new file mode 100644 index 000000000..f1a6f1279 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_global_service_buffer/test_api_unconfigure_mdns_global_service_buffer.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import unconfigure_mdns_global_service_buffer + + +class TestUnconfigureMdnsGlobalServiceBuffer(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T3-9500-S2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T3-9500-S2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_mdns_global_service_buffer(self): + result = unconfigure_mdns_global_service_buffer(self.device, 'test') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..d66a35b0f --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + mdns-sd gateway: "mdns-sd gateway\r\n" + no logging console: '' + no remote-cache-enable: "no remote-cache-enable\r\n" + prompt: T4-9500-SVL2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T4-9500-SVL2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T4-9500-SVL2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/test_api_unconfigure_mdns_remote_cache_enable.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/test_api_unconfigure_mdns_remote_cache_enable.py new file mode 100644 index 000000000..b0deb7f77 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_enable/test_api_unconfigure_mdns_remote_cache_enable.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import unconfigure_mdns_remote_cache_enable + + +class TestUnconfigureMdnsRemoteCacheEnable(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T4-9500-SVL2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T4-9500-SVL2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_mdns_remote_cache_enable(self): + result = unconfigure_mdns_remote_cache_enable(self.device) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..9d4ecda38 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + mdns-sd gateway: "mdns-sd gateway\r\n" + no logging console: '' + no remote-cache-max-limit: "no remote-cache-max-limit\r\n" + prompt: T4-9500-SVL2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T4-9500-SVL2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T4-9500-SVL2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/test_api_unconfigure_mdns_remote_cache_max_limit.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/test_api_unconfigure_mdns_remote_cache_max_limit.py new file mode 100644 index 000000000..2cd859a7d --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_cache_max_limit/test_api_unconfigure_mdns_remote_cache_max_limit.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import unconfigure_mdns_remote_cache_max_limit + + +class TestUnconfigureMdnsRemoteCacheMaxLimit(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T4-9500-SVL2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T4-9500-SVL2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_mdns_remote_cache_max_limit(self): + result = unconfigure_mdns_remote_cache_max_limit(self.device) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..64231e10e --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + mdns-sd gateway: "mdns-sd gateway\r\n" + no logging console: '' + no remote-cache-purge-timer: "no remote-cache-purge-timer \r\n" + prompt: T4-9500-SVL2(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: T4-9500-SVL2(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: T4-9500-SVL2# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/test_api_unconfigure_mdns_remote_purge_timer.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/test_api_unconfigure_mdns_remote_purge_timer.py new file mode 100644 index 000000000..e67a15604 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/mdns/configure/unconfigure_mdns_remote_purge_timer/test_api_unconfigure_mdns_remote_purge_timer.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.mdns.configure import unconfigure_mdns_remote_purge_timer + + +class TestUnconfigureMdnsRemotePurgeTimer(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + T4-9500-SVL2: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: c9500 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['T4-9500-SVL2'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_mdns_remote_purge_timer(self): + result = unconfigure_mdns_remote_purge_timer(self.device) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/pki/configure/configure_pki_enroll/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/pki/configure/configure_pki_enroll/mock_data/iosxe/mock_data.yaml index 1cfbab927..b7b157d2b 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/pki/configure/configure_pki_enroll/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/pki/configure/configure_pki_enroll/mock_data/iosxe/mock_data.yaml @@ -1,9 +1,24 @@ +include_serial: + prompt: "% Include the router serial number in the subject name? [yes/no]: " + commands: + "no": + new_state: include_ip +include_ip: + prompt: "% Include an IP address in the subject name? [no]: " + commands: + "no": + new_state: generate_self_signed +generate_self_signed: + prompt: "Generate Self Signed Router Certificate? [yes/no]: " + commands: + "yes": + response: | + Router Self Signed Certificate successfully created + new_state: configure configure: commands: - crypto pki enroll Self: "crypto pki enroll Self\r\n% Include the router serial\ - \ number in the subject name? [yes/no]: no\r\n% Include an IP address in the\ - \ subject name? [no]: no\r\nGenerate Self Signed Router Certificate? [yes/no]:\ - \ yes\r\n\r\nRouter Self Signed Certificate successfully created\r\n\r\n" + crypto pki enroll Self: + new_state: include_serial end: new_state: execute line console 0: diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..863651f47 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: dut(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: dut(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show platform software fed switch active punt ios-cause clear: + response: + - '' + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: dut# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/test_api_clear_active_punt_ios_cause.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/test_api_clear_active_punt_ios_cause.py new file mode 100644 index 000000000..a376f5cf6 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/clear/clear_active_punt_ios_cause/test_api_clear_active_punt_ios_cause.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.clear import clear_active_punt_ios_cause + + +class TestClearActivePuntIosCause(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + dut: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['dut'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_clear_active_punt_ios_cause(self): + result = clear_active_punt_ios_cause(self.device, 'active') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/mock_data/iosxe/mock_data.yaml index 940385b1c..e8b564adf 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/mock_data/iosxe/mock_data.yaml @@ -1,20 +1,21 @@ configure: commands: - bba-group pppoe bb-ppp1: "bba-group pppoe bb-ppp1\r\n" + bba-group pppoe global_100: "bba-group pppoe global_100\r\n" end: new_state: execute line console 0: new_state: configure_line no logging console: '' - service profile ser_bb: "service profile ser_bb\r\n" - virtual-template 1: "virtual-template 1\r\n" - prompt: UUT1(config)# + tag ppp-max-payload minimum 1500 maximum 1700: "tag ppp-max-payload minimum 1500\ + \ maximum 1700\r\n" + virtual-template 100: "virtual-template 100\r\n" + prompt: C1113-8P_pkumarmu(config)# configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: UUT1(config-line)# + prompt: C1113-8P_pkumarmu(config-line)# connect: commands: ? '' @@ -34,4 +35,4 @@ execute: show version: '' term length 0: '' term width 0: '' - prompt: UUT1# + prompt: C1113-8P_pkumarmu# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/test_api_configure_bba_group.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/test_api_configure_bba_group.py index 7e99cfb5c..3d170bf91 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/test_api_configure_bba_group.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_bba_group/test_api_configure_bba_group.py @@ -10,7 +10,7 @@ class TestConfigureBbaGroup(unittest.TestCase): def setUpClass(self): testbed = f""" devices: - UUT1: + C1113-8P_pkumarmu: connections: defaults: class: unicon.Unicon @@ -18,11 +18,11 @@ def setUpClass(self): command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect protocol: unknown os: iosxe - platform: iosxe + platform: router type: iosxe """ self.testbed = loader.load(testbed) - self.device = self.testbed.devices['UUT1'] + self.device = self.testbed.devices['C1113-8P_pkumarmu'] self.device.connect( learn_hostname=True, init_config_commands=[], @@ -30,11 +30,6 @@ def setUpClass(self): ) def test_configure_bba_group(self): - result = configure_bba_group(self.device, 'bb-ppp1', '1', 'ser_bb') - expected_output = None - self.assertEqual(result, expected_output) - - def test_configure_bba_group_1(self): - result = configure_bba_group(self.device, 'bb-ppp1', '1', None) + result = configure_bba_group(self.device, 'global_100', '100', None, 'minimum 1500 maximum 1700') expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_device_classifier_command/test_api_configure_device_classifier_command.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_device_classifier_command/test_api_configure_device_classifier_command.py index 581029644..fe94597dd 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_device_classifier_command/test_api_configure_device_classifier_command.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_device_classifier_command/test_api_configure_device_classifier_command.py @@ -30,6 +30,6 @@ def setUpClass(self): ) def test_configure_device_classifier_command(self): - result = configure_device_classifier_command(self.device, 'condition', 'COND_TEST_A', 'no lldp', 'tlv-type 6 value String Cisco', 'no device classifier') + result = configure_device_classifier_command(self.device, 'condition', 'COND_TEST_A', 'no lldp', 'tlv-type 6 value String Cisco', 'no device classifier', 60) expected_output = None self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..9a28b9acc --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,35 @@ +configure: + commands: + end: + new_state: execute + hw-module switch 1 ecomode led: "hw-module switch 1 ecomode led\r\n" + line console 0: + new_state: configure_line + no logging console: '' + prompt: 9300-smLED(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: 9300-smLED(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: 9300-smLED# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/test_api_configure_hw_module_switch_number_ecomode_led.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/test_api_configure_hw_module_switch_number_ecomode_led.py new file mode 100644 index 000000000..97dbafb8a --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_hw_module_switch_number_ecomode_led/test_api_configure_hw_module_switch_number_ecomode_led.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.configure import configure_hw_module_switch_number_ecomode_led + + +class TestConfigureHwModuleSwitchNumberEcomodeLed(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + 9300-smLED: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['9300-smLED'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_hw_module_switch_number_ecomode_led(self): + result = configure_hw_module_switch_number_ecomode_led(self.device, '1') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..155ff76f6 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + ip http client secure-trustpoint SLA-TrustPoint: "ip http client secure-trustpoint\ + \ SLA-TrustPoint\r\n" + line console 0: + new_state: configure_line + no logging console: '' + prompt: MSFT_9410(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: MSFT_9410(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: MSFT_9410# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/test_api_configure_ip_http_client_secure_trustpoint.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/test_api_configure_ip_http_client_secure_trustpoint.py new file mode 100644 index 000000000..a9c777a0b --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/configure_ip_http_client_secure_trustpoint/test_api_configure_ip_http_client_secure_trustpoint.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.configure import configure_ip_http_client_secure_trustpoint + + +class TestConfigureIpHttpClientSecureTrustpoint(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + MSFT_9410: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9410 + type: c9410 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['MSFT_9410'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_ip_http_client_secure_trustpoint(self): + result = configure_ip_http_client_secure_trustpoint(self.device, 'SLA-TrustPoint') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/mock_data/iosxe/mock_data.yaml index d541558f8..3871525b5 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/mock_data/iosxe/mock_data.yaml @@ -5,13 +5,13 @@ configure: line console 0: new_state: configure_line no logging console: '' - prompt: T13-C9300-24T(config)# + prompt: "%N(config)#" configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: T13-C9300-24T(config-line)# + prompt: "%N(config-line)#" connect: commands: ? '' @@ -23,18 +23,30 @@ connect: Escape character is ''^]''.' prompt: '' execute: + prompt: "%N#" commands: config term: new_state: configure config-transaction: new_state: configure - copy sh_switch_sftp.txt scp://root:cisco@172.163.128.3/sh_switch_sftp.txt: - response: - - "Address or name of remote host [172.163.128.3]? \r\nDestination filename\ - \ [sh_switch_sftp.txt]? \r\nWriting sh_switch_sftp.txt Sink: C0644 397 sh_switch_sftp.txt\r\ - \n!\r\n397 bytes copied in 0.200 secs (1985 bytes/sec)" - response_type: circular + copy scp://root:cisco@172.163.128.3/sh_ver.txt .: + new_state: destination_filename show version: '' term length 0: '' term width 0: '' - prompt: T13-C9300-24T# + +destination_filename: + prompt: "Destination filename [sh_ver.txt]?" + commands: + "": + response: "%Warning:There is a file already existing with this name" + new_state: copy_file_with_scp_overwrite + +copy_file_with_scp_overwrite: + prompt: "Do you want to over write? [confirm]" + commands: + "": + response: | + Sending file modes: C0644 3698 sh_ver.txt! + 3698 bytes copied in 0.304 secs (12164 bytes/sec) + new_state: execute \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/test_api_copy_file_with_scp.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/test_api_copy_file_with_scp.py index d673071c0..fc5e0aea9 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/test_api_copy_file_with_scp.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_scp/test_api_copy_file_with_scp.py @@ -4,7 +4,6 @@ from genie.libs.sdk.apis.iosxe.platform.configure import copy_file_with_scp from genie.libs.sdk.apis.utils import sanitize - class TestCopyFileWithScp(unittest.TestCase): @classmethod @@ -31,12 +30,14 @@ def setUpClass(self): ) def test_copy_file_with_scp(self): - result = copy_file_with_scp(self.device, '172.163.128.3', 'sh_switch_sftp.txt', 'root', 'cisco', None, 30) - expected_output = ('Address or name of remote host [172.163.128.3]? \r\n' - 'Destination filename [sh_switch_sftp.txt]? \r\n' - 'Writing sh_switch_sftp.txt Sink: C0644 397 sh_switch_sftp.txt\r\n' + self.maxDiff = None + result = copy_file_with_scp(self.device, '172.163.128.3', 'sh_ver.txt', 'root', 'cisco', '.', 1800) + expected_output = ('Destination filename [sh_ver.txt]? \r\n' + '%Warning:There is a file already existing with this name \r\n' + 'Do you want to over write? [confirm]\r\n' + ' Sending file modes: C0644 3698 sh_ver.txt\r\n' '!\r\n' - '397 bytes copied in 0.200 secs (1985 bytes/sec)') + '3698 bytes copied in 0.304 secs (12164 bytes/sec)') # Device output inconsistently includes device prompt if result.endswith('#'): expected_output += '\r\nT13-C9300-24T#' diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/mock_data/iosxe/mock_data.yaml index 1c87f70af..35e306b78 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/mock_data/iosxe/mock_data.yaml @@ -5,13 +5,13 @@ configure: line console 0: new_state: configure_line no logging console: '' - prompt: T13-C9300-24T(config)# + prompt: "%N(config)#" configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: T13-C9300-24T(config-line)# + prompt: C9200-24T_2007(config-line)# connect: commands: ? '' @@ -28,13 +28,25 @@ execute: new_state: configure config-transaction: new_state: configure - copy sh_switch_sftp.txt sftp://root:cisco@172.163.128.3/sh_switch_sftp.txt: - response: - - "Address or name of remote host [172.163.128.3]? \r\nDestination filename\ - \ [sh_switch_sftp.txt]? \r\nSFTP send: Writing to /root/sh_switch_sftp.txt\ - \ size 397\r\n!\r\n397 bytes copied in 0.204 secs (1946 bytes/sec)" - response_type: circular + copy sftp://root:cisco@172.163.128.3/sh_ver.txt .: + new_state: destination_filename show version: '' term length 0: '' term width 0: '' - prompt: T13-C9300-24T# + prompt: "%N#" + +destination_filename: + prompt: "Destination filename [sh_ver.txt]?" + commands: + "": + response: "%Warning:There is a file already existing with this name" + new_state: copy_file_with_sftp_overwrite + +copy_file_with_sftp_overwrite: + prompt: "Do you want to over write? [confirm]" + commands: + "": + response: | + Sending file modes: C0644 3698 sh_ver.txt! + 3698 bytes copied in 0.304 secs (12164 bytes/sec) + new_state: execute diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/test_api_copy_file_with_sftp.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/test_api_copy_file_with_sftp.py index 67333b249..5315a368a 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/test_api_copy_file_with_sftp.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/copy_file_with_sftp/test_api_copy_file_with_sftp.py @@ -2,7 +2,7 @@ import unittest from pyats.topology import loader from genie.libs.sdk.apis.iosxe.platform.configure import copy_file_with_sftp - +from genie.libs.sdk.apis.utils import sanitize class TestCopyFileWithSftp(unittest.TestCase): @@ -30,12 +30,10 @@ def setUpClass(self): ) def test_copy_file_with_sftp(self): - result = copy_file_with_sftp(self.device, '172.163.128.3', 'sh_switch_sftp.txt', 'root', 'cisco', None, 30) - expected_output = ('Address or name of remote host [172.163.128.3]? \r\n' - 'Destination filename [sh_switch_sftp.txt]? \r\n' - 'SFTP send: Writing to /root/sh_switch_sftp.txt size 397\r\n' - '!\r\n' - '397 bytes copied in 0.204 secs (1946 bytes/sec)') - # '\r\nT13-C9300-24T#') - # Running UT on Mac drops the prompt from the device output. - self.assertTrue(result.startswith(expected_output)) + result = copy_file_with_sftp(self.device, '172.163.128.3', 'sh_ver.txt', 'root', 'cisco', '.', 1800) + expected_output = ('Destination filename [sh_ver.txt]? \r\n' + '%Warning:There is a file already existing with this name \r\n' + 'Do you want to over write? [confirm]\r\n' + 'Sending file modes: C0644 3698 sh_ver.txt!\r\n' + '3698 bytes copied in 0.304 secs (12164 bytes/sec)') + self.assertEqual(sanitize(result), sanitize(expected_output)) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_active_standby_status/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_active_standby_status/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..8104641f3 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_active_standby_status/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: Router(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: Router(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + hw-module beacon RP active status: + response: + - BLUE + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: Router# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_active_standby_status/test_api_hw_module_beacon_rp_active_standby_status.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_active_standby_status/test_api_hw_module_beacon_rp_active_standby_status.py new file mode 100644 index 000000000..5ff21a57e --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_active_standby_status/test_api_hw_module_beacon_rp_active_standby_status.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.configure import hw_module_beacon_rp_active_standby_status + + +class TestHwModuleBeaconRpActiveStandbyStatus(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + ENC: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: iosxe + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['ENC'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_hw_module_beacon_rp_active_standby_status(self): + result = hw_module_beacon_rp_active_standby_status(self.device, 'active') + expected_output = 'BLUE' + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_status/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_status/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..e05bc5613 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_status/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: Router(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: Router(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + hw-module beacon R0 status: + response: + - BLUE + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: Router# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_status/test_api_hw_module_beacon_rp_status.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_status/test_api_hw_module_beacon_rp_status.py new file mode 100644 index 000000000..afcf3e030 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_status/test_api_hw_module_beacon_rp_status.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.configure import hw_module_beacon_rp_status + + +class TestHwModuleBeaconRpStatus(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + ENC: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: iosxe + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['ENC'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_hw_module_beacon_rp_status(self): + result = hw_module_beacon_rp_status(self.device, 'R0') + expected_output = 'BLUE' + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_toggle/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_toggle/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..2f21a3043 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_toggle/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: Router(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: Router(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + hw-module beacon R0 on: + response: + - '' + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: Router# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_toggle/test_api_hw_module_beacon_rp_toggle.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_toggle/test_api_hw_module_beacon_rp_toggle.py new file mode 100644 index 000000000..b908793d5 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_rp_toggle/test_api_hw_module_beacon_rp_toggle.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.configure import hw_module_beacon_rp_toggle + + +class TestHwModuleBeaconRpToggle(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + ENC: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: iosxe + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['ENC'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_hw_module_beacon_rp_toggle(self): + result = hw_module_beacon_rp_toggle(self.device, 'R0', 'on') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_slot_status/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_slot_status/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..60bf914ce --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_slot_status/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: Router(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: Router(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + hw-module beacon slot 0 status: + response: + - BLUE + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: Router# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_slot_status/test_api_hw_module_beacon_slot_status.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_slot_status/test_api_hw_module_beacon_slot_status.py new file mode 100644 index 000000000..4d3c48e68 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/hw_module_beacon_slot_status/test_api_hw_module_beacon_slot_status.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.configure import hw_module_beacon_slot_status + + +class TestHwModuleBeaconSlotStatus(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + ENC: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: iosxe + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['ENC'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_hw_module_beacon_slot_status(self): + result = hw_module_beacon_slot_status(self.device, 0) + expected_output = 'BLUE' + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..ce11dbdb0 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,35 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no hw-module switch 1 ecomode led: "no hw-module switch 1 ecomode led\r\n" + no logging console: '' + prompt: 9300-smLED(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: 9300-smLED(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: 9300-smLED# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/test_api_unconfigure_hw_module_switch_number_ecomode_led.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/test_api_unconfigure_hw_module_switch_number_ecomode_led.py new file mode 100644 index 000000000..cbfbe4285 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/platform/configure/unconfigure_hw_module_switch_number_ecomode_led/test_api_unconfigure_hw_module_switch_number_ecomode_led.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.platform.configure import unconfigure_hw_module_switch_number_ecomode_led + + +class TestUnconfigureHwModuleSwitchNumberEcomodeLed(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + 9300-smLED: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c9300 + type: c9300 + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['9300-smLED'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_hw_module_switch_number_ecomode_led(self): + result = unconfigure_hw_module_switch_number_ecomode_led(self.device, '1') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..056e60e10 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,37 @@ +configure: + commands: + class system-cpp-police-sw-forward: "class system-cpp-police-sw-forward\r\n" + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + no police rate 2000 pps: "no police rate 2000 pps\r\n" + policy-map system-cpp-policy: "policy-map system-cpp-policy\r\n" + prompt: Raitt(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: Raitt(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + prompt: Raitt# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/test_api_unconfigure_policy_map_with_pps.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/test_api_unconfigure_policy_map_with_pps.py new file mode 100644 index 000000000..90ec99892 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/policy_map/configure/unconfigure_policy_map_with_pps/test_api_unconfigure_policy_map_with_pps.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.policy_map.configure import unconfigure_policy_map_with_pps + + +class TestUnconfigurePolicyMapWithPps(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + Raitt: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: cat9k + type: iosxe + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['Raitt'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_unconfigure_policy_map_with_pps(self): + result = unconfigure_policy_map_with_pps(self.device, 'system-cpp-policy', 'system-cpp-police-sw-forward', 2000) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/mock_data/iosxe/mock_data.yaml index d246da1f7..de81ea3bb 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/mock_data/iosxe/mock_data.yaml @@ -1,17 +1,3 @@ -configure: - commands: - end: - new_state: execute - line console 0: - new_state: configure_line - no logging console: '' - prompt: ott-c9300-63(config)# -configure_line: - commands: - end: - new_state: execute - exec-timeout 0: '' - prompt: ott-c9300-63(config-line)# connect: commands: ? '' @@ -40,11 +26,8 @@ execute: response: - '' response_type: circular - config term: - new_state: configure - config-transaction: - new_state: configure - show version: '' - term length 0: '' - term width 0: '' - prompt: ott-c9300-63# + TFTP_FILE=flash:/test.bin: + response: + - '' + response_type: circular + prompt: 'switch:' diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/test_api_configure_rommon_tftp.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/test_api_configure_rommon_tftp.py index bd44e95a0..7d9b96665 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/test_api_configure_rommon_tftp.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/rommon/configure/configure_rommon_tftp/test_api_configure_rommon_tftp.py @@ -40,10 +40,10 @@ def setUpClass(self): """ self.testbed = loader.load(testbed) self.device = self.testbed.devices['ott-c9300-63'] + # To test the TFTP_FILE rommon variable + self.device.clean.images = ["flash:/test.bin"] self.device.connect( - learn_hostname=True, - init_config_commands=[], - init_exec_commands=[] + mit=True ) def test_configure_rommon_tftp(self): diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..4fd9b356e --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,40 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: r1(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: r1(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show running-config: + response: + - "Building configuration...\r\n\r\nCurrent configuration : 30522 bytes\r\naaa new-model\r\n!\r\n!\r\naaa authentication login default\ + \ local\r\naaa authorization exec default local \r\n!\r\n!\r\naaa session-id\ + \ common" + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: r1# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/test_api_get_running_config_dict.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/test_api_get_running_config_dict.py new file mode 100644 index 000000000..573098594 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/running_config/get/get_running_config_dict/test_api_get_running_config_dict.py @@ -0,0 +1,42 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.running_config.get import get_running_config_dict + + +class TestGetRunningConfigDict(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + r1: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: c8kv + type: router + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['r1'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_get_running_config_dict(self): + result = get_running_config_dict(self.device) + expected_output = { + 'Building configuration...': {}, + 'Current configuration : 30522 bytes': {}, + 'aaa authentication login default local': {}, + 'aaa authorization exec default local': {}, + 'aaa new-model': {}, + 'aaa session-id common': {}, + } + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/mock_data/iosxe/mock_data.yaml index 4fa16eb60..de4e5037b 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/mock_data/iosxe/mock_data.yaml @@ -35,7 +35,9 @@ execute: \ EST: %SISF-4-IP_THEFT: IP Theft IP=2001:DB8::105 VLAN=20 MAC=dead.beef.0001\ \ IF=Twe1/0/1 New(Spoof) MAC=dead.beef.0002 New I/F=Twe1/0/5\r\nFeb 16 17:19:26.873:\ \ %SISF-4-IP_THEFT: IP Theft IP=2001:DB8::105 VLAN=20 Cand-MAC=dead.beef.0002\ - \ Cand-I/F=Twe1/0/1 Known MAC dead.beef.0002 Known I/F Twe1/0/1" + \ Cand-I/F=Twe1/0/1 Known MAC dead.beef.0002 Known I/F Twe1/0/1\r\n.Feb 5\ + \ 19:30:20.037: %SISF-4-IP_THEFT: IP Theft IP=20.0.0.254 VLAN=20 MAC=ba25.cdf4.ad38\ + \ IF=Vl20 New(Spoof) MAC=dead.beef.0002 New IF=Gi1/0/1" response_type: circular show version: '' term length 0: '' diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/test_api_get_ip_theft_syslogs.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/test_api_get_ip_theft_syslogs.py index f735cb04b..6d745d200 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/test_api_get_ip_theft_syslogs.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/sisf/get/get_ip_theft_syslogs/test_api_get_ip_theft_syslogs.py @@ -30,17 +30,26 @@ def setUpClass(self): def test_get_ip_theft_syslogs(self): result = get_ip_theft_syslogs(self.device) - expected_output = {'entries': [{'ip': '2001:DB8::105', + expected_output = {'entries': [ + {'ip': '2001:DB8::105', 'mac': 'dead.beef.0001', 'new_interface': 'TwentyFiveGigE1/0/1', 'vlan': '20'}, - {'interface': 'TwentyFiveGigE1/0/1', + {'interface': 'TwentyFiveGigE1/0/1', 'ip': '2001:DB8::105', 'mac': 'dead.beef.0001', 'new_interface': 'TwentyFiveGigE1/0/5', 'new_mac': 'dead.beef.0002', 'vlan': '20'}, - {'ip': '2001:DB8::105', 'vlan': '20', + {'ip': '2001:DB8::105', 'vlan': '20', 'new_mac': 'dead.beef.0002', - 'new_interface': 'TwentyFiveGigE1/0/1'}]} + 'new_interface': 'TwentyFiveGigE1/0/1'}, + {'interface': 'Vlan20', + 'ip': '20.0.0.254', + 'mac': 'ba25.cdf4.ad38', + 'new_interface': 'GigabitEthernet1/0/1', + 'new_mac': 'dead.beef.0002', + 'vlan': '20'} + ]} + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/spanning_tree/configure/unconfigure_spanningtree_cost_on_interface/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/spanning_tree/configure/unconfigure_spanningtree_cost_on_interface/mock_data/iosxe/mock_data.yaml index c1fa53613..3ce96d10d 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/spanning_tree/configure/unconfigure_spanningtree_cost_on_interface/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/spanning_tree/configure/unconfigure_spanningtree_cost_on_interface/mock_data/iosxe/mock_data.yaml @@ -2,11 +2,11 @@ configure: commands: end: new_state: execute - interface GigabitEthernet1/0/3: "interface GigabitEthernet1/0/3\r\n" + interface GigabitEthernet1/0/3: "" line console 0: new_state: configure_line no logging console: '' - no spanning-tree cost 100: "SC_9200-2(config-if)#\r\n" + no spanning-tree cost 100: "" prompt: SC_9200-2(config)# configure_line: commands: diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/mock_data/iosxe/mock_data.yaml new file mode 100644 index 000000000..36b05e7e6 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/mock_data/iosxe/mock_data.yaml @@ -0,0 +1,36 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: CS12-19-6(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: CS12-19-6(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + show version: '' + term length 0: '' + term width 0: '' + terminal length 20: '' + terminal width 80: '' + prompt: CS12-19-6# \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/test_api_configure_terminal_settings.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/test_api_configure_terminal_settings.py new file mode 100644 index 000000000..48e353abd --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/system/configure/configure_terminal_settings/test_api_configure_terminal_settings.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.iosxe.system.configure import configure_terminal_settings + + +class TestConfigureTerminalSettings(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + CS12-19-6: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: None + type: None + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['CS12-19-6'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_configure_terminal_settings(self): + result = configure_terminal_settings(self.device, 20, 80) + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/utils/request_system_shell/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/utils/request_system_shell/mock_data/iosxe/mock_data.yaml old mode 100644 new mode 100755 diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_file_contents/test_api_get_file_contents.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_file_contents/test_api_get_file_contents.py index 60c3bcce9..9c2d43043 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_file_contents/test_api_get_file_contents.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_file_contents/test_api_get_file_contents.py @@ -30,7 +30,7 @@ def setUpClass(self): ) def test_get_file_contents(self): - result = get_file_contents(self.device, '/users/lgerrior/test_dir/device_key') + result = get_file_contents(self.device, '/users/lgerrior/test_dir/device_key', False) expected_output = ('-----BEGIN EC PRIVATE KEY-----\r\n' 'Proc-Type: 4,ENCRYPTED\r\n' 'DEK-Info: AES-256-CBC,D738EC42CBE1D776999970BEAE279176\r\n' diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_ip_route/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_ip_route/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_ip_route/test_api_get_ip_route.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_ip_route/test_api_get_ip_route.py new file mode 100644 index 000000000..78824a4a4 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/get/get_ip_route/test_api_get_ip_route.py @@ -0,0 +1,11 @@ +import unittest +from unittest import mock +from genie.libs.sdk.apis.linux.get import get_ip_route_for_ipv4 + + +class TestGetIpRoute(unittest.TestCase): + + def test_get_ip_route_for_ipv4(self): + device =mock.Mock() + device.execute.return_value = '127.0.0.1 via 1.1..1 dev example src 127.0.0.0 uid 1000 \r\n cache' + self.assertEqual(get_ip_route_for_ipv4(device, '127.0.0.1'), '127.0.0.0') \ No newline at end of file diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/mock_data/linux/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/mock_data/linux/mock_data.yaml new file mode 100644 index 000000000..b140c36c9 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/mock_data/linux/mock_data.yaml @@ -0,0 +1,44 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: sjc-ads-583(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: sjc-ads-583(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + ? openssl pkcs12 -export -chain -inkey /temp/secure/test_cert/device.key + -in /temp/secure/test_cert/device.crt -CAfile /temp/secure/test_cert/rootCA.crt + -out /temp/secure/test_cert/device.p12 -passin pass:password + -passout pass:password + : response: + - "openssl pkcs12 -export -chain -inkey /temp/secure/test_cert/device.key\ + \ -in /temp/secure/test_cert/device.crt -CAfile /ws/lsheik\r\ + kal-sjc/gnmi_tickets/secure/test_cert/rootCA.crt -out /temp/secure/test_cert/device.p12\ + \ -passin pass:password -passout pass:password" + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: sjc-ads-583# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/test_api_generate_pkcs12.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/test_api_generate_pkcs12.py new file mode 100644 index 000000000..bd9c627d1 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/openssl/generate/generate_pkcs12/test_api_generate_pkcs12.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.linux.openssl.generate import generate_pkcs12 + + +class TestGeneratePkcs12(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + sjc-ads-583: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os linux --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: linux + platform: None + type: None + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['sjc-ads-583'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_generate_pkcs12(self): + result = generate_pkcs12(self.device, '/temp/secure/test_cert/device.key', '/temp/secure/test_cert/device.crt', '/temp/secure/test_cert/rootCA.crt', '/temp/secure/test_cert/device.p12', 'password', 'password') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/mock_data/linux/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/mock_data/linux/mock_data.yaml new file mode 100644 index 000000000..8e8daad2f --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/mock_data/linux/mock_data.yaml @@ -0,0 +1,46 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: linux-server(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: linux-server(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + netstat -anp | grep 3240462/socat: + response: + - "(Not all processes could be identified, non-owned process info\r\n will not\ + \ be shown, you would have to be root to see it all.)\r\ntcp 0 \ + \ 0 0.0.0.0:42899 0.0.0.0:* LISTEN 3240462/socat\ + \ \r\nunix 3 [ ] DGRAM 614448634 3240462/socat\ + \ \r\nunix 3 [ ] DGRAM 614448635 3240462/socat" + response_type: circular + show version: '' + socat TCP4-LISTEN:0,reuseaddr,fork TCP4:10.28.88.99:80 &: + response: + - '[1] 3240462' + response_type: circular + term length 0: '' + term width 0: '' + prompt: linux-server# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/test_api_socat_relay.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/test_api_socat_relay.py new file mode 100644 index 000000000..145ab24e4 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/socat_relay/test_api_socat_relay.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.linux.socat.relay import socat_relay + + +class TestSocatRelay(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + linux-server: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os linux --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: linux + platform: linux + type: linux + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['linux-server'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_socat_relay(self): + result = socat_relay(self.device, '10.28.88.99', '80', 'TCP4') + expected_output = '42899' + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/mock_data/linux/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/mock_data/linux/mock_data.yaml new file mode 100644 index 000000000..6e709a77c --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/mock_data/linux/mock_data.yaml @@ -0,0 +1,38 @@ +configure: + commands: + end: + new_state: execute + line console 0: + new_state: configure_line + no logging console: '' + prompt: linux-server(config)# +configure_line: + commands: + end: + new_state: execute + exec-timeout 0: '' + prompt: linux-server(config-line)# +connect: + commands: + ? '' + : new_state: execute + preface: 'Trying mock_device ... + + Connected to mock_device. + + Escape character is ''^]''.' + prompt: '' +execute: + commands: + config term: + new_state: configure + config-transaction: + new_state: configure + kill 3240462: + response: + - '' + response_type: circular + show version: '' + term length 0: '' + term width 0: '' + prompt: linux-server# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/test_api_stop_socat_relay.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/test_api_stop_socat_relay.py new file mode 100644 index 000000000..4237fa56f --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/socat/relay/stop_socat_relay/test_api_stop_socat_relay.py @@ -0,0 +1,35 @@ +import os +import unittest +from pyats.topology import loader +from genie.libs.sdk.apis.linux.socat.relay import stop_socat_relay + + +class TestStopSocatRelay(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + linux-server: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os linux --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: linux + platform: linux + type: linux + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['linux-server'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_stop_socat_relay(self): + result = stop_socat_relay(self.device, '3240462') + expected_output = None + self.assertEqual(result, expected_output) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/utils/test_utils.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/utils/test_utils.py new file mode 100644 index 000000000..7ee754b70 --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/linux/utils/test_utils.py @@ -0,0 +1,15 @@ +import unittest +from unittest import mock +import ipaddress + +from genie.libs.sdk.apis.linux.utils import get_valid_ipv4_address + + + +class TestGetValidIpv4(unittest.TestCase): + def test_get_valid_ipv4_addres(self): + device = mock.Mock() + ip = '127.0.0.1/16' + self.assertEqual(get_valid_ipv4_address(device, ip), ipaddress.IPv4Address('127.0.0.1')) + with self.assertRaises(ipaddress.AddressValueError): + get_valid_ipv4_address(device, '123/234') diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/__init__.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/mock_data/iosxe/mock_data.yaml b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/mock_data/iosxe/mock_data.yaml similarity index 88% rename from pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/mock_data/iosxe/mock_data.yaml rename to pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/mock_data/iosxe/mock_data.yaml index ed5122668..46b3f7d29 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/iosxe/routing/configure/remove_routing_ip_route/mock_data/iosxe/mock_data.yaml +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/mock_data/iosxe/mock_data.yaml @@ -5,13 +5,13 @@ configure: line console 0: new_state: configure_line no logging console: '' - prompt: n08HA(config)# + prompt: Organ(config)# configure_line: commands: end: new_state: execute exec-timeout 0: '' - prompt: n08HA(config-line)# + prompt: Organ(config-line)# connect: commands: ? '' @@ -31,4 +31,4 @@ execute: show version: '' term length 0: '' term width 0: '' - prompt: n08HA# + prompt: Organ# diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/test_api_check_and_wait.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/test_api_check_and_wait.py new file mode 100644 index 000000000..571e2095c --- /dev/null +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/tests/utils/check_and_wait/test_api_check_and_wait.py @@ -0,0 +1,35 @@ +import os +import unittest +import re +from pyats.topology import loader +from genie.libs.sdk.apis.utils import check_and_wait + + +class TestCheckAndWait(unittest.TestCase): + + @classmethod + def setUpClass(self): + testbed = f""" + devices: + Organ: + connections: + defaults: + class: unicon.Unicon + a: + command: mock_device_cli --os iosxe --mock_data_dir {os.path.dirname(__file__)}/mock_data --state connect + protocol: unknown + os: iosxe + platform: router + type: router + """ + self.testbed = loader.load(testbed) + self.device = self.testbed.devices['Organ'] + self.device.connect( + learn_hostname=True, + init_config_commands=[], + init_exec_commands=[] + ) + + def test_check_and_wait(self): + result = check_and_wait('True', '60', '10', None) + self.assertIsInstance(result, object) diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py index 9624ba9de..08d0b057b 100644 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/apis/utils.py @@ -23,6 +23,7 @@ from netaddr import IPAddress from ipaddress import IPv4Interface from urllib.parse import urlparse +from functools import wraps # pyATS from pyats.easypy import runtime @@ -4327,6 +4328,7 @@ def device_recovery_boot(device, console_activity_pattern=None, console_breakboo subnet_mask: (Mandatory) gateway: (Mandatory) tftp_server: (Mandatory) + ether_port: (Optional) (Default to 0) Return: None Raise: @@ -4351,20 +4353,25 @@ def device_recovery_boot(device, console_activity_pattern=None, console_breakboo grub_breakboot_char = grub_breakboot_char or recovery_info.get('grub_breakboot_char') or 'c' break_count = break_count or recovery_info.get('break_count') or 15 timeout = timeout or recovery_info.get('timeout') or 750 + ether_port = 0 + tftp_boot = tftp_boot or recovery_info.get('tftp_boot', {}) + log.info('Destroy device connection.') try: device.destroy() except Exception: log.warning("Failed to destroy the device connection but " "attempting to continue", exc_info=True) - + if golden_image or recovery_info.get('golden_image'): log.info(banner("Booting device '{}' with the Golden images".\ format(device.name))) log.info("Golden image information found:\n{}".format(golden_image)) - elif tftp_boot or recovery_info.get('tftp_boot'): + elif tftp_boot: + # set ether_port to default value 0 + tftp_boot.setdefault('ether_port', ether_port) log.info(banner("Booting device '{}' with the Tftp images".\ format(device.name))) log.info("Tftp boot information found:\n{}".format(tftp_boot)) @@ -4403,7 +4410,7 @@ def device_recovery_boot(device, console_activity_pattern=None, console_breakboo 'break_count': break_count, 'timeout': timeout, 'golden_image': golden_image or recovery_info.get('golden_image'), - 'tftp_boot': tftp_boot or recovery_info.get('tftp_boot'), + 'tftp_boot': tftp_boot, 'recovery_password': recovery_password or recovery_info.get('recovery_password')} ) except Exception as e: @@ -4423,3 +4430,28 @@ def sanitize(s): s = ansi_escape.sub('', s) return s.translate(dict.fromkeys(range(32))).strip().replace(' ', '') + +def check_and_wait(expect, max_time, poll_time, call_on_fail_func=None, **call_on_fail_func_args): + '''A decorator to check the return value of a function + and wait until it matches the expected value or timeout. + Args: + expect(`bool`): True or False + max_time(`int`): Maximum time to keep checking. seconds + poll_time(`int`): How often to check. seconds + ''' + def decorator(func): + @wraps(func) + def inner_func(*args, **kargs): + start_time = time.time() + result = False + while int(time.time() - start_time) < max_time: + result = func(*args, **kargs) + if isinstance(result, bool) and result == expect: + return result + else: + time.sleep(poll_time) + if call_on_fail_func is not None: + call_on_fail_func(**call_on_fail_func_args) + return result + return inner_func + return decorator diff --git a/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/blitz/tests/test_yangexec.py b/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/blitz/tests/test_yangexec.py index e403bc83d..ad39cca82 100755 --- a/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/blitz/tests/test_yangexec.py +++ b/pkgs/sdk-pkg/src/genie/libs/sdk/triggers/blitz/tests/test_yangexec.py @@ -3002,7 +3002,7 @@ def test_get_config_transaction_time(self): format = { 'auto-validate': False, - 'transaction_time': 0.00000001 + 'transaction_time': -0.00000001 } response = proto.gnmi_pb2.GetResponse() upd = { @@ -3044,7 +3044,8 @@ def test_get_config_transaction_time(self): ) self.assertEqual(result, True) - + # TODO: Make this work reliably on MacOS + @unittest.skipIf(sys.platform == "darwin", "Skip test for MacOS") def test_subscribe_poll_transaction_time(self): request = self.make_test_request() request['transaction_time'] = 0.00000000001 @@ -3068,6 +3069,8 @@ def test_subscribe_poll_transaction_time(self): subscribe_thread.join() self.assertEqual(subscribe_thread.result, True) + # TODO: Make this work reliably on MacOS + @unittest.skipIf(sys.platform == "darwin", "Skip test for MacOS") def test_subscribe_once_transaction_time(self): request = self.make_test_request() request['transaction_time'] = 0.00000000001