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")
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')
def save(env, ip, filename, **kwargs): """ save simulation to local virl file """ with open(filename, 'w') as fh: sim_name = get_env_sim_name(env) server = VIRLServer() resp = server.export(sim_name, ip=ip) click.secho("Saving {} to {}".format(sim_name, filename)) fh.write(resp.text)
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")