def fanouthosts(ansible_adhoc, conn_graph_facts, creds): """ Shortcut fixture for getting Fanout hosts """ dev_conn = conn_graph_facts[ 'device_conn'] if 'device_conn' in conn_graph_facts else {} fanout_hosts = {} for dut_port in dev_conn.keys(): fanout_rec = dev_conn[dut_port] fanout_host = fanout_rec['peerdevice'] fanout_port = fanout_rec['peerport'] if fanout_host in fanout_hosts.keys(): fanout = fanout_hosts[fanout_host] else: host_vars = ansible_adhoc().options['inventory_manager'].get_host( fanout_host).vars os_type = 'eos' if 'os' not in host_vars else host_vars['os'] fanout = FanoutHost(ansible_adhoc, os_type, fanout_host, 'FanoutLeaf', creds['fanout_admin_user'], creds['fanout_admin_password']) fanout_hosts[fanout_host] = fanout fanout.add_port_map(dut_port, fanout_port) return fanout_hosts
def fanouthosts(ansible_adhoc, conn_graph_facts, creds): """ Shortcut fixture for getting Fanout hosts """ dev_conn = conn_graph_facts[ 'device_conn'] if 'device_conn' in conn_graph_facts else {} fanout_hosts = {} # WA for virtual testbed which has no fanout try: for dut_port in dev_conn.keys(): fanout_rec = dev_conn[dut_port] fanout_host = fanout_rec['peerdevice'] fanout_port = fanout_rec['peerport'] if fanout_host in fanout_hosts.keys(): fanout = fanout_hosts[fanout_host] else: host_vars = ansible_adhoc( ).options['inventory_manager'].get_host(fanout_host).vars os_type = 'eos' if 'os' not in host_vars else host_vars['os'] if os_type == "eos": user = creds['fanout_admin_user'] pswd = creds['fanout_admin_password'] elif os_type == "onyx": user = creds["fanout_mlnx_user"] pswd = creds["fanout_mlnx_password"] fanout = FanoutHost(ansible_adhoc, os_type, fanout_host, 'FanoutLeaf', user, pswd) fanout_hosts[fanout_host] = fanout fanout.add_port_map(dut_port, fanout_port) except: pass return fanout_hosts
def fanouthosts(ansible_adhoc, conn_graph_facts, creds): """ Shortcut fixture for getting Fanout hosts """ dev_conn = conn_graph_facts[ 'device_conn'] if 'device_conn' in conn_graph_facts else {} fanout_hosts = {} # WA for virtual testbed which has no fanout try: for dut_port in dev_conn.keys(): fanout_rec = dev_conn[dut_port] fanout_host = fanout_rec['peerdevice'] fanout_port = fanout_rec['peerport'] if fanout_host in fanout_hosts.keys(): fanout = fanout_hosts[fanout_host] else: host_vars = ansible_adhoc( ).options['inventory_manager'].get_host(fanout_host).vars os_type = 'eos' if 'os' not in host_vars else host_vars['os'] # `fanout_network_user` and `fanout_network_password` are for accessing the non-shell CLI of fanout # Ansible will use this set of credentail for establishing `network_cli` connection with device # when applicable. network_user = creds[ 'fanout_network_user'] if 'fanout_network_user' in creds else creds[ 'fanout_admin_user'] network_password = creds[ 'fanout_network_password'] if 'fanout_network_password' in creds else creds[ 'fanout_admin_password'] shell_user = creds[ 'fanout_shell_user'] if 'fanout_shell_user' in creds else creds[ 'fanout_admin_user'] shell_password = creds[ 'fanout_shell_password'] if 'fanout_shell_password' in creds else creds[ 'fanout_admin_password'] fanout = FanoutHost(ansible_adhoc, os_type, fanout_host, 'FanoutLeaf', network_user, network_password, shell_user=shell_user, shell_passwd=shell_password) fanout_hosts[fanout_host] = fanout fanout.add_port_map(dut_port, fanout_port) except: pass return fanout_hosts