Example #1
0
def pyats1(env, **kwargs):
    """
    Generates a pyats testbed config for an environment
    """
    if kwargs.get("output"):
        # user specified output filename
        file_name = kwargs.get("output")
    else:
        # writes to <env>_testbed.yaml by default
        file_name = "{}_testbed.yaml".format(env)

    running = helpers.check_sim_running(env)
    if running:
        sim_name = running
        server = VIRLServer()
        roster = server.get_sim_roster(sim_name)
        # sim_name = "topology-fpyHFs"
        virl_data = server.export(sim_name, ip=True).content
        interfaces = server.get_interfaces(sim_name).json()
        testbed_yaml = pyats_testbed_generator1(sim_name, virl_data, roster=roster, interfaces=interfaces)

        click.secho("Writing {}".format(file_name))
        with open(file_name, "w") as yaml_file:
            yaml_file.write(testbed_yaml)

    else:
        click.secho("couldnt generate testbed for for env: {}".format(env), fg="red")
Example #2
0
def ansible(env, **kwargs):
    """
    generate ansible inventory
    """
    if kwargs.get("output"):
        # user specified output filename
        file_name = kwargs.get("output")
    else:
        # writes to <env>_testbed.yaml by default
        file_name = '{}_inventory.yaml'.format(env)

    running = helpers.check_sim_running(env)
    if running:
        sim_name = running
        server = VIRLServer()
        roster = server.get_sim_roster(sim_name)
        # sim_name = "topology-fpyHFs"
        virl_data = server.export(sim_name, ip=True).content
        interfaces = server.get_interfaces(sim_name).json()
        inventory_yaml = ansible_inventory_generator(sim_name,
                                                     virl_data,
                                                     roster=roster,
                                                     interfaces=interfaces)

        click.secho("Writing {}".format(file_name))
        with open(file_name, 'w') as yaml_file:
            yaml_file.write(inventory_yaml)


    else:
        click.secho("couldnt generate testbed for for env: {}".format(env), fg='red')
Example #3
0
def nso1(env, syncfrom, **kwargs):
    """
    generate nso inventory
    """

    if kwargs.get("output"):
        # user specified output filename
        file_name = kwargs.get("output")
    else:
        # writes to <env>.json by default
        file_name = None

    running = helpers.check_sim_running(env)
    if running:
        sim_name = running
        server = VIRLServer()
        roster = server.get_sim_roster(sim_name)
        # sim_name = "topology-fpyHFs"
        virl_data = server.export(sim_name, ip=True).content
        interfaces = server.get_interfaces(sim_name).json()

        payload = nso_payload_generator1(sim_name,
                                         virl_data,
                                         roster=roster,
                                         interfaces=interfaces)

        if file_name:  # pragma: no cover
            click.secho("Writing payload to {}".format(file_name))
            with open(file_name, "w") as payload_file:

                payload_file.write(payload)
        else:
            click.secho("Updating NSO....")
            nso_obj = NSO()
            nso_response = nso_obj.update_devices(payload)
            if nso_response.ok:
                click.secho("Successfully added VIRL devices to NSO")
            else:
                click.secho("Error updating NSO: ", fg="red")
                click.secho(nso_response.text)
            if syncfrom:
                resp = nso_obj.perform_sync_from()
                sync_table(resp.json())

    else:
        click.secho("couldnt generate testbed for for env: {}".format(env),
                    fg="red")