def _run_netdevice(self, netdevice_ids, netdevice_cmd, netdevice_config, use_textfsm): """ Perform the netdevice execution :param netdevice_ids: :param netdevice_cmd: :param net_device_config: :param use_textfsm: :param kwargs: :return: json of status object """ log = logging.getLogger(__name__) result = {} rc = True for device_id in netdevice_ids.split(','): # find the access information device_info = self.opts.get(device_id.strip(), None) if not device_info: msg = u"Unable to find section for '{}'".format(device_id) result[device_id] = {"status": 'failure', "reason": msg} rc = False log.warning(msg) continue device_commit = str_to_bool(device_info.pop('use_commit', 'False')) # pop result[device_id] = execute(device_info, netdevice_cmd, netdevice_config, device_commit, use_textfsm) return rc, result
def selftest_function(opts): """ Run through all the defined devices and attempt to connect. The results are returned in a dictionary """ options = opts.get("fn_netdevice", {}) names = options.get("selftest", None) if not names: return { "state": "unimplemented"} results = {"state": "success"} for device in names.split(","): try: section = device.strip() settings = opts.get(section, None) if not settings: results[section] = {"status": "failure", "reason": u"section '{}' not found".format(section) } results["state"] = "failure" else: settings.pop('use_commit', None) # remove parameters not needed for connection result = execute(settings, None, None, False, False) results[section] = result if result["status"] == "failure": results["state"] = "failure" except Exception as err: results[section] = {"status": "failure", "reason": str(err) } results["state"] = "failure" return results
def test_success(): my_connection = connection.copy() result = execute(my_connection, "ip address", None, False, False) assert not result.get('reason') assert result['status'] == 'success' assert result['send_result'].find('inet') != -1
def test_bad_password(): my_connection = connection.copy() my_connection['password'] = '' result = execute(my_connection, None, None, False, False) assert result.get('reason') assert result['reason'].find('Authentication failure') != -1 assert result['status'] == 'failure'