Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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