def save_bootvar(self, testbed): """Check boot information and save bootvar to startup-config Args: testbed (`obj`): Testbed object Returns: None Raises: pyATS Results """ # Create Summary summary = Summary(title='Summary', width=90) devices = [] for dev in self.parent.mapping_data['devices']: device = testbed.devices[dev] if device.type in EXCLUDED_DEVICE_TYPES: msg = " - This subsection is not supported for 'TGN' devices" summarize(summary, message=msg, device=dev) continue devices.append(device) device_dict = {} failed = False # We don't catch exceptions since failures will lead to passx in that # CommonSetup subsection asynchronous_boot_var_output = pcall(asynchronous_save_boot_variable, ckwargs={ 'self': self, 'device_dict': device_dict }, device=tuple(devices)) for item in asynchronous_boot_var_output: for dev, res in item.items(): if res == 'Failed': failed = True msg = " - Failed to save boot variable or copy "\ "running-config to startup-config" summarize(summary, message=msg, device=dev) elif res == 'Skipped': msg = " - Skipped saving boot variable or copy "\ "running-config to startup-config" summarize(summary, message=msg, device=dev) else: msg = " - Successfully saved boot variable" summarize(summary, message=msg, device=dev) summary.print() if failed: self.passx("Issue while saving boot variable on one of the devices, " "Check section summary for more details")
def learn_system_defaults(self, testbed): """Execute commands to learn default system information Args: testbed (`obj`): Testbed object Returns: None Raises: pyATS Results """ # Get default memory location self.parent.default_file_system = {} # Create Summary summary = Summary(title='Summary', width=150) for device in self.parent.mapping_data['devices']: dev = testbed.devices[device] lookup = Lookup.from_device(dev) # Skip in case of TGN device if dev.type in EXCLUDED_DEVICE_TYPES: log.info("This subsection is not supported for " "TGN device '{}'".format(dev.name)) msg = " - This subsection is not supported for 'TGN' devices" summarize(summary, message=msg, device=dev.name) continue try: self.parent.default_file_system[dev.name] = lookup.sdk.libs.\ abstracted_libs.subsection.get_default_dir( device=dev) msg = " - Successfully learnt system default directroy" summarize(summary, message=msg, device=device) except LookupError as e: log.info('Cannot find device {d} correspoding get_default_dir'.\ format(d=dev.name)) msg = " - Didn't find device OS corresponding "\ "'get_default_dir' implementation, Please contact Genie support" summarize(summary, message=msg, device=device) except Exception as e: msg = " - Failed to learn system default directory" summarize(summary, message=msg, device=device) summary.print() self.failed('Unable to learn system default directory', from_exception=e) summary.print() if not self.parent.default_file_system: # Create Summary summary = Summary(title='Summary', width=90) summary.add_message("* Summary for device(s): " "{}".format(', '.join(self.parent.mapping_data['devices']))) summary.add_sep_line() msg = " - Couldn't set system default directory" summarize(summary, message=msg) summary.print() self.failed('Unable to set system default directory')