From 2c82c69a9a37cbbbbf4f98be64d4ebb6c6cf5366 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Thu, 25 Jan 2024 13:38:45 -0600 Subject: [PATCH 01/36] Changes location_type parent parameter to convert to ID --- plugins/module_utils/utils.py | 3 +++ plugins/modules/location_type.py | 6 ++++-- tests/integration/targets/latest/tasks/location_type.yml | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/module_utils/utils.py b/plugins/module_utils/utils.py index fa7089a9..0f7a0969 100644 --- a/plugins/module_utils/utils.py +++ b/plugins/module_utils/utils.py @@ -112,6 +112,7 @@ nat_inside="address", nat_outside="address", parent_location="name", + parent_location_type="name", parent_rack_group="name", parent_tenant_group="name", power_panel="name", @@ -176,6 +177,7 @@ "platform": "platforms", "parent_rack_group": "rack_groups", "parent_location": "locations", + "parent_location_type": "location_types", "parent_tenant_group": "tenant_groups", "power_panel": "power_panels", "power_port": "power_ports", @@ -400,6 +402,7 @@ CONVERT_KEYS = { "parent_rack_group": "parent", "parent_location": "parent", + "parent_location_type": "parent", "parent_tenant_group": "parent", "rear_port_template_position": "rear_port_position", "termination_a": "termination_a_id", diff --git a/plugins/modules/location_type.py b/plugins/modules/location_type.py index 32adfbb5..23570443 100644 --- a/plugins/modules/location_type.py +++ b/plugins/modules/location_type.py @@ -35,7 +35,9 @@ - Location Type description required: false type: str - parent: + parent_location_type: + aliases: + - parent description: - The parent location type this location type should be tied to required: false @@ -117,7 +119,7 @@ def main(): dict( name=dict(required=True, type="str"), description=dict(required=False, type="str"), - parent=dict(required=False, type="raw"), + parent_location_type=dict(required=False, type="raw", aliases=["parent"]), nestable=dict(required=False, type="bool"), content_types=dict(required=False, type="list", elements="str"), custom_fields=dict(required=False, type="dict"), diff --git a/tests/integration/targets/latest/tasks/location_type.yml b/tests/integration/targets/latest/tasks/location_type.yml index 9f093022..f1cb68e5 100644 --- a/tests/integration/targets/latest/tasks/location_type.yml +++ b/tests/integration/targets/latest/tasks/location_type.yml @@ -55,7 +55,7 @@ token: "{{ nautobot_token }}" name: Test Location Type 2 description: Test Location Type 2 Description - parent: "{{ test_create_min['location_type']['id'] }}" + parent: "{{ test_create_min['location_type']['name'] }}" nestable: "{{ true if nautobot_version is version('1.5', '>=') else omit }}" content_types: - "dcim.device" @@ -80,7 +80,7 @@ token: "{{ nautobot_token }}" name: Test Location Type 2 description: Test Location Type 2 Description - parent: "{{ test_create_min['location_type']['id'] }}" + parent: "{{ test_create_min['location_type']['name'] }}" nestable: "{{ true if nautobot_version is version('1.5', '>=') else omit }}" content_types: - "dcim.device" From c8f757b01b77dc45576ed8257d76634a8ce228da Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Thu, 25 Jan 2024 14:34:50 -0600 Subject: [PATCH 02/36] Adds parent alias --- plugins/modules/location.py | 6 ++- plugins/modules/rack_group.py | 4 +- plugins/modules/tenant_group.py | 6 ++- .../targets/latest/tasks/location.yml | 4 +- .../targets/latest/tasks/rack_group.yml | 49 +++++++++++++++++++ .../targets/latest/tasks/tenant_group.yml | 4 +- 6 files changed, 64 insertions(+), 9 deletions(-) diff --git a/plugins/modules/location.py b/plugins/modules/location.py index fa994d13..06085260 100644 --- a/plugins/modules/location.py +++ b/plugins/modules/location.py @@ -56,6 +56,8 @@ required: false type: raw parent_location: + aliases: + - parent description: - The parent location this location should be tied to required: false @@ -180,7 +182,7 @@ contact_phone: 867-5309 contact_email: jenny@example.com comments: "**This** is a `markdown` comment" - parent_location: My Location + parent: My Location state: present """ @@ -216,7 +218,7 @@ def main(): status=dict(required=False, type="raw"), description=dict(required=False, type="str"), location_type=dict(required=False, type="raw"), - parent_location=dict(required=False, type="raw"), + parent_location=dict(required=False, type="raw", aliases=["parent"]), tenant=dict(required=False, type="raw"), facility=dict(required=False, type="str"), asn=dict(required=False, type="int"), diff --git a/plugins/modules/rack_group.py b/plugins/modules/rack_group.py index cc2a7bd4..6d0a5bb8 100644 --- a/plugins/modules/rack_group.py +++ b/plugins/modules/rack_group.py @@ -41,6 +41,8 @@ type: raw version_added: "3.0.0" parent_rack_group: + aliases: + - parent description: - The parent rack-group the rack group will be assigned to required: false @@ -104,7 +106,7 @@ def main(): name=dict(required=True, type="str"), description=dict(required=False, type="str"), location=dict(required=False, type="raw"), - parent_rack_group=dict(required=False, type="raw"), + parent_rack_group=dict(required=False, type="raw", aliases=["parent"]), ) ) diff --git a/plugins/modules/tenant_group.py b/plugins/modules/tenant_group.py index 25608e83..09a5a160 100644 --- a/plugins/modules/tenant_group.py +++ b/plugins/modules/tenant_group.py @@ -35,6 +35,8 @@ type: str version_added: "3.0.0" parent_tenant_group: + aliases: + - parent description: - Name of the parent tenant group required: false @@ -67,7 +69,7 @@ url: http://nautobot.local token: thisIsMyToken name: Tenant Group ABC - parent_tenant_group: Customer Tenants + parent: Customer Tenants state: present """ @@ -101,7 +103,7 @@ def main(): dict( name=dict(required=True, type="str"), description=dict(required=False, type="str"), - parent_tenant_group=dict(required=False, type="raw"), + parent_tenant_group=dict(required=False, type="raw", aliases=["parent"]), ) ) diff --git a/tests/integration/targets/latest/tasks/location.yml b/tests/integration/targets/latest/tasks/location.yml index 4eae8224..64eed8fa 100644 --- a/tests/integration/targets/latest/tasks/location.yml +++ b/tests/integration/targets/latest/tasks/location.yml @@ -107,7 +107,7 @@ status: Active description: Test Location 2 Description location_type: "{{ child_location_type['key'] }}" - parent_location: "{{ test_create_min['location']['id'] }}" + parent: "{{ test_create_min['location']['id'] }}" tenant: Test Tenant facility: EquinoxCA7 asn: "65001" @@ -192,7 +192,7 @@ name: Testing Parent Name Lookup # Testing issue #303, where the location name lookup is exact instead of contains # 'Parent Test Location' and 'Parent Test Location 2' are both valid parent locations - parent_location: "Parent Test Location" + parent: "Parent Test Location" status: Active location_type: "{{ child_location_type['key'] }}" register: test_parent_name diff --git a/tests/integration/targets/latest/tasks/rack_group.yml b/tests/integration/targets/latest/tasks/rack_group.yml index ce900e8b..1ac8073f 100644 --- a/tests/integration/targets/latest/tasks/rack_group.yml +++ b/tests/integration/targets/latest/tasks/rack_group.yml @@ -6,6 +6,7 @@ ## - set_fact: test_location: "{{ lookup('networktocode.nautobot.lookup', 'locations', api_endpoint=nautobot_url, token=nautobot_token, api_filter='name=\"Child Test Location\" parent=\"Parent Test Location\"') }}" + parent_rack_group: "{{ lookup('networktocode.nautobot.lookup', 'rack-groups', api_endpoint=nautobot_url, token=nautobot_token, api_filter='name=\"Parent Rack Group\"') }}" - name: "RACK_GROUP 1: Necessary info creation" networktocode.nautobot.rack_group: @@ -62,3 +63,51 @@ - test_three['diff']['before']['state'] == "present" - test_three['diff']['after']['state'] == "absent" - test_three['msg'] == "rack_group Rack Group deleted" + +- name: "RACK_GROUP 4: Create child rack group" + networktocode.nautobot.rack_group: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + name: Test Rack Group + description: Test Rack Group Description + location: + name: "Child Test Location" + parent: "Parent Test Location" + parent: Parent Rack Group + state: present + register: test_four + +- name: "RACK_GROUP 4: ASSERT - Create child rack group" + assert: + that: + - test_four is changed + - test_four['diff']['before']['state'] == "absent" + - test_four['diff']['after']['state'] == "present" + - test_four['rack_group']['name'] == "Test Rack Group" + - test_four['rack_group']['description'] == "Test Rack Group Description" + - test_four['rack_group']['location'] == test_location['key'] + - test_four['rack_group']['parent'] == parent_rack_group['key'] + - test_four['msg'] == "rack_group Test Rack Group created" + +- name: "RACK_GROUP 5: Create duplicate child rack group" + networktocode.nautobot.rack_group: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + name: Test Rack Group + description: Test Rack Group Description + location: + name: "Child Test Location" + parent: "Parent Test Location" + parent: Parent Rack Group + state: present + register: test_five + +- name: "RACK_GROUP 5: ASSERT - Create duplicate child rack group" + assert: + that: + - not test_five['changed'] + - test_five['rack_group']['name'] == "Test Rack Group" + - test_five['rack_group']['description'] == "Test Rack Group Description" + - test_five['rack_group']['location'] == test_location['key'] + - test_five['rack_group']['parent'] == parent_rack_group['key'] + - test_five['msg'] == "rack_group Test Rack Group already exists" diff --git a/tests/integration/targets/latest/tasks/tenant_group.yml b/tests/integration/targets/latest/tasks/tenant_group.yml index 459197ad..aeeb2bea 100644 --- a/tests/integration/targets/latest/tasks/tenant_group.yml +++ b/tests/integration/targets/latest/tasks/tenant_group.yml @@ -13,7 +13,7 @@ url: "{{ nautobot_url }}" token: "{{ nautobot_token }}" name: "Test Tenant Group Two" - parent_tenant_group: "Test Tenant Group" + parent: "Test Tenant Group" register: test_one - name: "1 - ASSERT" @@ -31,7 +31,7 @@ url: "{{ nautobot_url }}" token: "{{ nautobot_token }}" name: "Test Tenant Group Two" - parent_tenant_group: "Test Tenant Group" + parent: "Test Tenant Group" register: test_two - name: "2 - ASSERT" From 0badc71bbefabd3fc565512ecce3090239d57bdf Mon Sep 17 00:00:00 2001 From: Garrett Date: Mon, 12 Feb 2024 15:50:07 +0000 Subject: [PATCH 03/36] Added Custom fields for {role,tag,vlan_group}.py --- plugins/modules/role.py | 2 ++ plugins/modules/tag.py | 2 ++ plugins/modules/vlan_group.py | 2 ++ 3 files changed, 6 insertions(+) diff --git a/plugins/modules/role.py b/plugins/modules/role.py index 05c70010..d239f3d8 100644 --- a/plugins/modules/role.py +++ b/plugins/modules/role.py @@ -21,6 +21,7 @@ version_added: "5.0.0" extends_documentation_fragment: - networktocode.nautobot.fragments.base + - networktocode.nautobot.fragments.custom_fields options: name: description: @@ -109,6 +110,7 @@ def main(): color=dict(required=False, type="str"), content_types=dict(required=False, type="list", elements="str"), weight=dict(required=False, type="int"), + custom_fields=dict(required=False, type="dict"), ) ) diff --git a/plugins/modules/tag.py b/plugins/modules/tag.py index ec0b93b1..e4b6812d 100644 --- a/plugins/modules/tag.py +++ b/plugins/modules/tag.py @@ -21,6 +21,7 @@ version_added: "1.0.0" extends_documentation_fragment: - networktocode.nautobot.fragments.base + - networktocode.nautobot.fragments.custom_fields options: name: description: @@ -146,6 +147,7 @@ def main(): color=dict(required=False, type="str"), description=dict(required=False, type="str"), content_types=dict(required=False, type="list", elements="str"), + custom_fields=dict(required=False, type="dict"), ) ) diff --git a/plugins/modules/vlan_group.py b/plugins/modules/vlan_group.py index 77598fdf..eeef61fb 100644 --- a/plugins/modules/vlan_group.py +++ b/plugins/modules/vlan_group.py @@ -21,6 +21,7 @@ version_added: "1.0.0" extends_documentation_fragment: - networktocode.nautobot.fragments.base + - networktocode.nautobot.fragments.custom_fields options: name: description: @@ -97,6 +98,7 @@ def main(): name=dict(required=True, type="str"), location=dict(required=False, type="raw"), description=dict(required=False, type="str"), + custom_fields=dict(required=False, type="dict"), ) ) From b4ccad0a1e5833bd136d3f37897578d2d142c6f6 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 14 Feb 2024 10:34:00 -0600 Subject: [PATCH 04/36] Fixes running tests locally via invoke commands --- tasks.py | 55 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/tasks.py b/tasks.py index 6cebec42..160b872a 100644 --- a/tasks.py +++ b/tasks.py @@ -1,4 +1,5 @@ """Tasks for use with Invoke.""" + from distutils.util import strtobool from invoke import Collection, task as invoke_task import os @@ -55,22 +56,22 @@ def task_wrapper(function=None): def docker_compose(context, command, **kwargs): - """Helper function for running a specific docker-compose command with all appropriate parameters and environment. + """Helper function for running a specific docker compose command with all appropriate parameters and environment. Args: context (obj): Used to run specific commands - command (str): Command string to append to the "docker-compose ..." command, such as "build", "up", etc. + command (str): Command string to append to the "docker compose ..." command, such as "build", "up", etc. **kwargs: Passed through to the context.run() call. """ build_env = { "NAUTOBOT_VER": context.nautobot_ansible.nautobot_ver, "PYTHON_VER": context.nautobot_ansible.python_ver, } - compose_command = f'docker-compose --project-name {context.nautobot_ansible.project_name} --project-directory "{context.nautobot_ansible.compose_dir}"' + compose_command = f'docker compose --project-name {context.nautobot_ansible.project_name} --project-directory "{context.nautobot_ansible.compose_dir}"' for compose_file in context.nautobot_ansible.compose_files: compose_file_path = os.path.join(context.nautobot_ansible.compose_dir, compose_file) compose_command += f' -f "{compose_file_path}"' compose_command += f" {command}" - print(f'Running docker-compose command "{command}"') + print(f'Running docker compose command "{command}"') return context.run(compose_command, env=build_env, **kwargs) @@ -218,29 +219,53 @@ def post_upgrade(context): def lint(context): """Run linting tools""" context.run( - "docker-compose up --build --force-recreate --quiet-pull --exit-code-from lint lint", + "docker compose up --build --force-recreate --exit-code-from lint lint", env={"PYTHON_VER": context["nautobot_ansible"]["python_ver"]}, ) -@task -def unit(context): +@task( + help={ + "verbose": "Run the tests with verbose output; can be provided multiple times for more verbosity (e.g. -v, -vv, -vvv)", + }, + incrementable=["verbose"], +) +def unit(context, verbose=0): """Run unit tests""" - context.run( - "docker-compose up --build --force-recreate --quiet-pull --exit-code-from unit unit", - env={"PYTHON_VER": context["nautobot_ansible"]["python_ver"]}, - ) + env = {"PYTHON_VER": context["nautobot_ansible"]["python_ver"]} + if verbose: + env["ANSIBLE_UNIT_ARGS"] = f"-{'v' * verbose}" + context.run("docker compose up --build --force-recreate --exit-code-from unit unit", env=env) -@task -def integration(context): +@task( + help={ + "verbose": "Run the tests with verbose output; can be provided multiple times for more verbosity (e.g. -v, -vv, -vvv)", + "tags": "Run specific test tags (e.g. 'device' or 'location'); can be provided multiple times (e.g. --tags device --tags location)", + }, + iterable=["tags"], + incrementable=["verbose"], +) +def integration(context, verbose=0, tags=None): """Run all tests including integration tests""" + build(context) + # Destroy any existing containers and volumes that may be left over from a previous run destroy(context) start(context) + env = {"PYTHON_VER": context["nautobot_ansible"]["python_ver"]} + ansible_args = [] + if verbose: + ansible_args.append(f"-{'v' * verbose}") + if tags: + ansible_args.append(f"--tags {','.join(tags)}") + if ansible_args: + env["ANSIBLE_INTEGRATION_ARGS"] = " ".join(ansible_args) context.run( - "docker-compose up --build --force-recreate --exit-code-from integration integration", - env={"PYTHON_VER": context["nautobot_ansible"]["python_ver"]}, + "docker compose up --build --force-recreate --exit-code-from integration integration", + env=env, ) + # Clean up after the tests + destroy(context) @task( From 6425f4003d2c064eb31c3d63884aa09fc3e64de6 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 14 Feb 2024 11:23:32 -0600 Subject: [PATCH 05/36] Changes network to be external --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index a6eb009a..fa2a73eb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,3 +41,4 @@ services: networks: integration_network: name: nautobot_ansible_default + external: true From 2e03019637648dd4af3f9a13dc123e6c3156e424 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 14 Feb 2024 11:36:24 -0600 Subject: [PATCH 06/36] Changes network name --- docker-compose.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index fa2a73eb..5d15c939 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -40,5 +40,4 @@ services: # Attach these services to the Nautobot network that gets spun up from invoke start networks: integration_network: - name: nautobot_ansible_default - external: true + name: nautobot-ansible_default From 07d8ee4320e7e1c158eff5d012fe5d82ef7df691 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 14 Feb 2024 13:24:20 -0600 Subject: [PATCH 07/36] Revert previous change --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5d15c939..a6eb009a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -40,4 +40,4 @@ services: # Attach these services to the Nautobot network that gets spun up from invoke start networks: integration_network: - name: nautobot-ansible_default + name: nautobot_ansible_default From 5872c0111f541d6df64e2d9162959fcc36d0b489 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 14 Feb 2024 13:24:39 -0600 Subject: [PATCH 08/36] Sets the project name for tests --- tasks.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tasks.py b/tasks.py index 160b872a..e186bc97 100644 --- a/tasks.py +++ b/tasks.py @@ -219,7 +219,7 @@ def post_upgrade(context): def lint(context): """Run linting tools""" context.run( - "docker compose up --build --force-recreate --exit-code-from lint lint", + "docker compose --project-name nautobot_ansible up --build --force-recreate --exit-code-from lint lint", env={"PYTHON_VER": context["nautobot_ansible"]["python_ver"]}, ) @@ -235,7 +235,7 @@ def unit(context, verbose=0): env = {"PYTHON_VER": context["nautobot_ansible"]["python_ver"]} if verbose: env["ANSIBLE_UNIT_ARGS"] = f"-{'v' * verbose}" - context.run("docker compose up --build --force-recreate --exit-code-from unit unit", env=env) + context.run("docker compose --project-name nautobot_ansible up --build --force-recreate --exit-code-from unit unit", env=env) @task( @@ -261,7 +261,7 @@ def integration(context, verbose=0, tags=None): if ansible_args: env["ANSIBLE_INTEGRATION_ARGS"] = " ".join(ansible_args) context.run( - "docker compose up --build --force-recreate --exit-code-from integration integration", + "docker compose --project-name nautobot_ansible up --build --force-recreate --exit-code-from integration integration", env=env, ) # Clean up after the tests From 041a34c2c78a43462e5201e47e8c95c2ed0413b0 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 14 Feb 2024 13:31:33 -0600 Subject: [PATCH 09/36] Removes network label --- docker-compose.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a6eb009a..b61a9df6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,10 +34,3 @@ services: build: <<: *build target: integration - networks: - - integration_network - -# Attach these services to the Nautobot network that gets spun up from invoke start -networks: - integration_network: - name: nautobot_ansible_default From 830d0ab9597be231daf264170cea42c4f85a8cc1 Mon Sep 17 00:00:00 2001 From: Teun Vink Date: Tue, 5 Mar 2024 21:15:48 +0100 Subject: [PATCH 10/36] Update lookup_lookup.rst in nautobot v2, the filter for looking up tags is 'tags' instead of 'tag'. --- docs/plugins/lookup_lookup.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/plugins/lookup_lookup.rst b/docs/plugins/lookup_lookup.rst index 3f73e07e..fbedf13c 100755 --- a/docs/plugins/lookup_lookup.rst +++ b/docs/plugins/lookup_lookup.rst @@ -490,7 +490,7 @@ Examples loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', api_version='1.3', - api_filter='role=management tag=Dell', + api_filter='role=management tags=Dell', token='') }}" # This example uses an API Filter with Depth set to get additional details from the lookup From 9c25dccd56f971a8b3ecaa0ba14119ff43cafca8 Mon Sep 17 00:00:00 2001 From: Teun Vink Date: Tue, 5 Mar 2024 22:31:37 +0100 Subject: [PATCH 11/36] Update lookup_lookup.rst bump version --- docs/plugins/lookup_lookup.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/plugins/lookup_lookup.rst b/docs/plugins/lookup_lookup.rst index fbedf13c..6f813ad4 100755 --- a/docs/plugins/lookup_lookup.rst +++ b/docs/plugins/lookup_lookup.rst @@ -476,7 +476,7 @@ Examples manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='') }}" # This example uses an API Filter @@ -489,7 +489,7 @@ Examples manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', api_filter='role=management tags=Dell', token='') }}" @@ -515,7 +515,7 @@ Examples msg: "{{ query('networktocode.nautobot.lookup', 'bgp_sessions', api_filter='device=R1-Device', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='', plugin='mycustomstuff') }}" From ffe92749d7c224180169f701e0e1bceaeacc7897 Mon Sep 17 00:00:00 2001 From: Teun Vink Date: Tue, 5 Mar 2024 22:39:27 +0100 Subject: [PATCH 12/36] Update lookup.py fix tag vs tags and version --- plugins/lookup/lookup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/lookup/lookup.py b/plugins/lookup/lookup.py index f21fd95d..7391150e 100644 --- a/plugins/lookup/lookup.py +++ b/plugins/lookup/lookup.py @@ -76,7 +76,7 @@ manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='') }}" # This example uses an API Filter @@ -89,8 +89,8 @@ manufactured by {{ item.value.device_type.manufacturer.name }}" loop: "{{ query('networktocode.nautobot.lookup', 'devices', api_endpoint='http://localhost/', - api_version='1.3', - api_filter='role=management tag=Dell', + api_version='2.0', + api_filter='role=management tags=Dell', token='') }}" # This example uses an API Filter with Depth set to get additional details from the lookup @@ -115,7 +115,7 @@ msg: "{{ query('networktocode.nautobot.lookup', 'bgp_sessions', api_filter='device=R1-Device', api_endpoint='http://localhost/', - api_version='1.3', + api_version='2.0', token='', plugin='mycustomstuff') }}" """ From 568e36bb5ce801a10fcfac16b7f1c563ae9db610 Mon Sep 17 00:00:00 2001 From: itdependsnetworks Date: Sun, 24 Mar 2024 12:40:39 -0400 Subject: [PATCH 13/36] Fix constructured inventory in gql_inventory --- plugins/inventory/gql_inventory.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/inventory/gql_inventory.py b/plugins/inventory/gql_inventory.py index 69cf3a00..04c5f736 100644 --- a/plugins/inventory/gql_inventory.py +++ b/plugins/inventory/gql_inventory.py @@ -13,6 +13,9 @@ short_description: Nautobot inventory source using GraphQL capability description: - Get inventory hosts from Nautobot using GraphQL queries +extends_documentation_fragment: + - constructed + - inventory_cache requirements: - netutils options: @@ -383,11 +386,23 @@ def main(self): raise AnsibleParserError(to_native(json_data["errors"][0]["message"])) for device in json_data["data"].get("devices", []) + json_data["data"].get("virtual_machines", []): - self.inventory.add_host(device["name"]) + hostname=device["name"] + self.inventory.add_host(host=hostname) self.add_ipv4_address(device) self.add_ansible_platform(device) self.populate_variables(device) self.create_groups(device) + strict = self.get_option("strict") + + # Composed variables + self._set_composite_vars(self.get_option("compose"), device, hostname, strict=strict) + + # Complex groups based on jinja2 conditionals, hosts that meet the conditional are added to group + self._add_host_to_composed_groups(self.get_option("groups"), device, hostname, strict=strict) + + # Create groups based on variable values and add the corresponding hosts to it + self._add_host_to_keyed_groups(self.get_option("keyed_groups"), device, hostname, strict=strict) + def parse(self, inventory, loader, path, cache=True): super(InventoryModule, self).parse(inventory, loader, path) From 23fa11da71abf57a61a1bbae09853a626f06f9e0 Mon Sep 17 00:00:00 2001 From: itdependsnetworks Date: Sun, 24 Mar 2024 16:31:03 -0400 Subject: [PATCH 14/36] Fix linter --- plugins/inventory/gql_inventory.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/inventory/gql_inventory.py b/plugins/inventory/gql_inventory.py index 04c5f736..32a34014 100644 --- a/plugins/inventory/gql_inventory.py +++ b/plugins/inventory/gql_inventory.py @@ -121,7 +121,7 @@ # } # This module will automatically add the ansible_host key and set it equal to primary_ip4.host -# as well as the ansible_network_os key and set it to platform.napalm_driver +# as well as the ansible_network_os key and set it to platform.napalm_driver via netutils mapping # if the primary_ip4.host and platform.napalm_driver are present on the device in Nautobot. # Add additional query parameters with the query key. @@ -262,7 +262,7 @@ def add_ipv4_address(self, device): def add_ansible_platform(self, device): """Add network platform to host""" - if device.get("platform") and "napalm_driver" in device["platform"]: + if device.get("platform", {}).get("napalm_driver"): self.add_variable( device["name"], ANSIBLE_LIB_MAPPER_REVERSE.get(NAPALM_LIB_MAPPER.get(device["platform"]["napalm_driver"])), # Convert napalm_driver to ansible_network_os value @@ -386,7 +386,7 @@ def main(self): raise AnsibleParserError(to_native(json_data["errors"][0]["message"])) for device in json_data["data"].get("devices", []) + json_data["data"].get("virtual_machines", []): - hostname=device["name"] + hostname = device["name"] self.inventory.add_host(host=hostname) self.add_ipv4_address(device) self.add_ansible_platform(device) @@ -403,7 +403,6 @@ def main(self): # Create groups based on variable values and add the corresponding hosts to it self._add_host_to_keyed_groups(self.get_option("keyed_groups"), device, hostname, strict=strict) - def parse(self, inventory, loader, path, cache=True): super(InventoryModule, self).parse(inventory, loader, path) self._read_config_data(path=path) From 19002ef8090c3f0d19b2d60099a848be01d92cc9 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Mon, 25 Mar 2024 15:47:35 -0500 Subject: [PATCH 15/36] Adds Nautobot v2.1 tests to CI --- .github/workflows/tests.yml | 3 ++- .github/workflows/trigger_release.yml | 1 + development/nautobot_config.py | 4 ++++ tests/integration/entrypoint.sh | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e4e02e82..83f76956 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -54,7 +54,7 @@ jobs: python-version: - "3.9" nautobot-version: - - "2.0" + - "2.1" ansible-version: - "2.14" - "2.15" @@ -76,6 +76,7 @@ jobs: - "3.11" nautobot-version: - "2.0" + - "2.1" ansible-version: - "2.14" - "2.15" diff --git a/.github/workflows/trigger_release.yml b/.github/workflows/trigger_release.yml index 637f2dff..c08e1329 100644 --- a/.github/workflows/trigger_release.yml +++ b/.github/workflows/trigger_release.yml @@ -45,6 +45,7 @@ jobs: - "3.11" nautobot-version: - "2.0" + - "2.1" ansible-version: - "2.14" - "2.15" diff --git a/development/nautobot_config.py b/development/nautobot_config.py index ebc9fdfd..9d8aaa07 100644 --- a/development/nautobot_config.py +++ b/development/nautobot_config.py @@ -1,4 +1,5 @@ """Nautobot development configuration file.""" + # pylint: disable=invalid-envvar-default import os import sys @@ -73,3 +74,6 @@ # Enable installed plugins. Add the name of each plugin to the list. PLUGINS = ["nautobot_bgp_models"] + +# Disable metrics for tests +INSTALLATION_METRICS_ENABLED = False diff --git a/tests/integration/entrypoint.sh b/tests/integration/entrypoint.sh index 63b549d7..0c667747 100755 --- a/tests/integration/entrypoint.sh +++ b/tests/integration/entrypoint.sh @@ -25,7 +25,7 @@ function main { render "./tests/integration/integration_config.tmpl.yml" > ./tests/integration/integration_config.yml echo "# Checking to make sure Nautobot server is reachable.." - timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' nautobot:8000)" != "200" ]]; do echo "waiting for Nautobot"; sleep 5; done' || false + timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' nautobot:8000/health/)" != "200" ]]; do echo "waiting for Nautobot"; sleep 5; done' || false echo "# Populating Nautobot for running integration tests.." python ./tests/integration/nautobot-populate.py From 0c485aca9e0c42a0919b44946f79921c5f18ac0e Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 27 Mar 2024 12:04:53 -0500 Subject: [PATCH 16/36] Renames inventory files for new pattern --- .../inventory/files/{test-inventory.json => test_2-2.2.json} | 0 .../inventory/files/{test-inventory.yml => test_2-2.2.yml} | 0 .../files/{test-inventory-legacy.json => test_2-2.2_legacy.json} | 0 .../files/{test-inventory-legacy.yml => test_2-2.2_legacy.yml} | 0 .../{test-inventory-options.json => test_2-2.2_options.json} | 0 .../files/{test-inventory-options.yml => test_2-2.2_options.yml} | 0 ...ntory-options-flatten.json => test_2-2.2_options_flatten.json} | 0 ...ventory-options-flatten.yml => test_2-2.2_options_flatten.yml} | 0 .../{test-inventory-plurals.json => test_2-2.2_plurals.json} | 0 .../files/{test-inventory-plurals.yml => test_2-2.2_plurals.yml} | 0 ...ntory-plurals-flatten.json => test_2-2.2_plurals_flatten.json} | 0 ...ventory-plurals-flatten.yml => test_2-2.2_plurals_flatten.yml} | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename tests/integration/targets/inventory/files/{test-inventory.json => test_2-2.2.json} (100%) rename tests/integration/targets/inventory/files/{test-inventory.yml => test_2-2.2.yml} (100%) rename tests/integration/targets/inventory/files/{test-inventory-legacy.json => test_2-2.2_legacy.json} (100%) rename tests/integration/targets/inventory/files/{test-inventory-legacy.yml => test_2-2.2_legacy.yml} (100%) rename tests/integration/targets/inventory/files/{test-inventory-options.json => test_2-2.2_options.json} (100%) rename tests/integration/targets/inventory/files/{test-inventory-options.yml => test_2-2.2_options.yml} (100%) rename tests/integration/targets/inventory/files/{test-inventory-options-flatten.json => test_2-2.2_options_flatten.json} (100%) rename tests/integration/targets/inventory/files/{test-inventory-options-flatten.yml => test_2-2.2_options_flatten.yml} (100%) rename tests/integration/targets/inventory/files/{test-inventory-plurals.json => test_2-2.2_plurals.json} (100%) rename tests/integration/targets/inventory/files/{test-inventory-plurals.yml => test_2-2.2_plurals.yml} (100%) rename tests/integration/targets/inventory/files/{test-inventory-plurals-flatten.json => test_2-2.2_plurals_flatten.json} (100%) rename tests/integration/targets/inventory/files/{test-inventory-plurals-flatten.yml => test_2-2.2_plurals_flatten.yml} (100%) diff --git a/tests/integration/targets/inventory/files/test-inventory.json b/tests/integration/targets/inventory/files/test_2-2.2.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory.json rename to tests/integration/targets/inventory/files/test_2-2.2.json diff --git a/tests/integration/targets/inventory/files/test-inventory.yml b/tests/integration/targets/inventory/files/test_2-2.2.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory.yml rename to tests/integration/targets/inventory/files/test_2-2.2.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-legacy.json b/tests/integration/targets/inventory/files/test_2-2.2_legacy.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-legacy.json rename to tests/integration/targets/inventory/files/test_2-2.2_legacy.json diff --git a/tests/integration/targets/inventory/files/test-inventory-legacy.yml b/tests/integration/targets/inventory/files/test_2-2.2_legacy.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-legacy.yml rename to tests/integration/targets/inventory/files/test_2-2.2_legacy.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-options.json b/tests/integration/targets/inventory/files/test_2-2.2_options.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options.json rename to tests/integration/targets/inventory/files/test_2-2.2_options.json diff --git a/tests/integration/targets/inventory/files/test-inventory-options.yml b/tests/integration/targets/inventory/files/test_2-2.2_options.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options.yml rename to tests/integration/targets/inventory/files/test_2-2.2_options.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-options-flatten.json b/tests/integration/targets/inventory/files/test_2-2.2_options_flatten.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options-flatten.json rename to tests/integration/targets/inventory/files/test_2-2.2_options_flatten.json diff --git a/tests/integration/targets/inventory/files/test-inventory-options-flatten.yml b/tests/integration/targets/inventory/files/test_2-2.2_options_flatten.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-options-flatten.yml rename to tests/integration/targets/inventory/files/test_2-2.2_options_flatten.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals.json b/tests/integration/targets/inventory/files/test_2-2.2_plurals.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals.json rename to tests/integration/targets/inventory/files/test_2-2.2_plurals.json diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals.yml b/tests/integration/targets/inventory/files/test_2-2.2_plurals.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals.yml rename to tests/integration/targets/inventory/files/test_2-2.2_plurals.yml diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals-flatten.json b/tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.json similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals-flatten.json rename to tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.json diff --git a/tests/integration/targets/inventory/files/test-inventory-plurals-flatten.yml b/tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.yml similarity index 100% rename from tests/integration/targets/inventory/files/test-inventory-plurals-flatten.yml rename to tests/integration/targets/inventory/files/test_2-2.2_plurals_flatten.yml From 544f407243484d2efdcd52a89e4f55ac711f290a Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 27 Mar 2024 13:13:23 -0500 Subject: [PATCH 17/36] Updates inventory tests to match new pattern --- tests/integration/entrypoint.sh | 6 +++-- tests/integration/targets/inventory/runme.sh | 26 +++++++++++++++++++ .../targets/inventory/runme_config.template | 4 +-- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/tests/integration/entrypoint.sh b/tests/integration/entrypoint.sh index 0c667747..4d8a964a 100755 --- a/tests/integration/entrypoint.sh +++ b/tests/integration/entrypoint.sh @@ -10,8 +10,8 @@ set -o pipefail function render { - readonly template="$1"; shift - readonly content="$(cat "$template")" + template="$1"; shift + content="$(cat "$template")" eval "echo \"$content\"" } @@ -23,6 +23,8 @@ function main { echo "# Rendering integration configuration" render "./tests/integration/integration_config.tmpl.yml" > ./tests/integration/integration_config.yml + echo "# Creating inventory test config" + render "./tests/integration/targets/inventory/runme_config.template" > ./tests/integration/targets/inventory/runme_config echo "# Checking to make sure Nautobot server is reachable.." timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' nautobot:8000/health/)" != "200" ]]; do echo "waiting for Nautobot"; sleep 5; done' || false diff --git a/tests/integration/targets/inventory/runme.sh b/tests/integration/targets/inventory/runme.sh index ad146d6f..9749666c 100755 --- a/tests/integration/targets/inventory/runme.sh +++ b/tests/integration/targets/inventory/runme.sh @@ -46,12 +46,38 @@ inventory () { RESULT=0 +# Convert NAUTOBOT_VER to just semantic version (strips any beta/rc/etc monikers) +NAUTOBOT_VER=$(echo "$NAUTOBOT_VER" | cut -d'-' -f1) +# Ensure NAUTOBOT_VER always has 3 sections of version (major.minor.patch) for proper min/max comparison below +IFS='.' read -ra VER <<< "$NAUTOBOT_VER" +if [[ ${#VER[@]} -eq 1 ]]; then + NAUTOBOT_VER="${VER[0]}.0.0" +elif [[ ${#VER[@]} -eq 2 ]]; then + NAUTOBOT_VER="${VER[0]}.${VER[1]}.0" +fi + for INVENTORY in "$INVENTORIES_DIR"/*.yml do NAME="$(basename "$INVENTORY")" NAME_WITHOUT_EXTENSION="${NAME%.yml}" OUTPUT_JSON="$OUTPUT_DIR/$NAME_WITHOUT_EXTENSION.json" + # Extract min and max versions from the filename + VERSION_PATTERN="test_([0-9.]+)-([0-9.]+).*\.yml" + if [[ "$NAME" =~ $VERSION_PATTERN ]]; then + MIN_VERSION="${BASH_REMATCH[1]}" + MAX_VERSION="${BASH_REMATCH[2]}" + else + echo "Invalid filename format: $NAME" + exit 1 + fi + # Check if NAUTOBOT_VER is within the specified range + if ! printf "%s\n%s\n%s\n" $MIN_VERSION $NAUTOBOT_VER $MAX_VERSION | sort -V -C; then + # The sort statement will return non-zero if the versions are not in order (min <= nautobot_ver <= max) + echo "NAUTOBOT_VER is $NAUTOBOT_VER, skipping inventory test: $NAME" + continue + fi + inventory -vvvv --list --inventory "$INVENTORY" --output="$OUTPUT_JSON" # Compare the output diff --git a/tests/integration/targets/inventory/runme_config.template b/tests/integration/targets/inventory/runme_config.template index 7865d774..1b292e62 100644 --- a/tests/integration/targets/inventory/runme_config.template +++ b/tests/integration/targets/inventory/runme_config.template @@ -1,6 +1,6 @@ # runme_config is source'd by runme.sh to set environment variables used to modify the test against different versions of Nautobot. -# .travis.yml uses render_config.sh to generate it from runme_config.template +# entrypoint.sh generates it from runme_config.template (this file) # There is no other way to pass environment variables to a runme.sh integration test. # (integration_config.yml files are only helpful to ansible yaml-based tests) -export PYNAUTOBOT_VERSION=${VERSION} +export NAUTOBOT_VER=${NAUTOBOT_VER} From 7e31a749d9132d0928ca10fb8c260abc3d104450 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 27 Mar 2024 13:13:43 -0500 Subject: [PATCH 18/36] Adds new 2.2+ version files --- .../targets/inventory/files/test_2.2-3.json | 2869 ++++++++++++++++ .../targets/inventory/files/test_2.2-3.yml | 27 + .../inventory/files/test_2.2-3_legacy.json | 778 +++++ .../inventory/files/test_2.2-3_legacy.yml | 9 + .../inventory/files/test_2.2-3_options.json | 474 +++ .../inventory/files/test_2.2-3_options.yml | 60 + .../files/test_2.2-3_options_flatten.json | 2835 ++++++++++++++++ .../files/test_2.2-3_options_flatten.yml | 39 + .../inventory/files/test_2.2-3_plurals.json | 2952 +++++++++++++++++ .../inventory/files/test_2.2-3_plurals.yml | 36 + .../files/test_2.2-3_plurals_flatten.json | 516 +++ .../files/test_2.2-3_plurals_flatten.yml | 30 + 12 files changed, 10625 insertions(+) create mode 100644 tests/integration/targets/inventory/files/test_2.2-3.json create mode 100644 tests/integration/targets/inventory/files/test_2.2-3.yml create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_legacy.json create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_legacy.yml create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_options.json create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_options.yml create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_options_flatten.json create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_options_flatten.yml create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_plurals.json create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_plurals.yml create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.json create mode 100644 tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.yml diff --git a/tests/integration/targets/inventory/files/test_2.2-3.json b/tests/integration/targets/inventory/files/test_2.2-3.json new file mode 100644 index 00000000..5816c7c8 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3.json @@ -0,0 +1,2869 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "config_context": {}, + "custom_fields": {}, + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Main Test Rack", + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "config_context": {}, + "custom_fields": {}, + "device_type": "Nexus Parent", + "dns_name": "nexus.example.com", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.449934Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.494441Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "56a8ae15-5543-496f-addf-5038a27a3cb0", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/56a8ae15-5543-496f-addf-5038a27a3cb0/" + }, + "display": "Test Nexus Child One", + "face": null, + "id": "3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a", + "last_updated": "2024-03-27T17:38:39.854921Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus Child One", + "natural_slug": "test-nexus-child-one__child-test-location_parent-test-location_3d0c", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/", + "vc_position": 2, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet2/1", + "enabled": true, + "id": "f4796f28-9625-43eb-9b99-8684cf6f535a", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.12/24", + "created": "2024-03-27T17:38:41.943535Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.12/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.12", + "id": "e0e90260-e594-4731-93ab-5efca44b55e7", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.943593Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-12_e0e9", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.449955Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet2/1", + "natural_slug": "ethernet2-1_test-nexus-child-one__child-test-location_parent-test-location_f479", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.395148Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet1/1", + "enabled": true, + "id": "2f84a3d8-6923-4daf-8817-a79e62576085", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.11/24", + "created": "2024-03-27T17:38:41.904010Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.11/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.11", + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.904032Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-11_25de", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.395169Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet1/1", + "natural_slug": "ethernet1-1_test-nexus-one__child-test-location_parent-test-location_2f84", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/", + "vrf": null + } + ], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "primary_ip4": "172.16.180.11", + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.856585Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "69c3d77b-1523-43a8-acde-61e993c7f011", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.856616Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth0_69c3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.895334Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "0c4b09cb-d1b9-47aa-ae7c-9bce45792c65", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.895355Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth1_0c4b", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "config_context": {}, + "custom_fields": {}, + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Sub Test Rack", + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "config_context": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "custom_fields": {}, + "device_type": "Cisco Test", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.714492Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet1", + "enabled": true, + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.714514Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet1", + "natural_slug": "gigabitethernet1_test100_test-tenant_child-test-location_parent-test-location_52f9", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.769927Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet2", + "enabled": true, + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "2001::ffff:ffff:ffff:ffff", + "created": "2024-03-27T17:38:33.624801Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "2001::/64", + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:33.624822Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_2001_64_386d", + "network": "2001::", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "2001::/64", + "prefix_length": 64, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.769947Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet2", + "natural_slug": "gigabitethernet2_test100_test-tenant_child-test-location_parent-test-location_1747", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.823634Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet3", + "enabled": true, + "id": "0f0ab93e-e3f6-4b86-81dd-8d2b7542b999", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.823708Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet3", + "natural_slug": "gigabitethernet3_test100_test-tenant_child-test-location_parent-test-location_0f0a", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.878515Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet4", + "enabled": true, + "id": "884700bf-df8c-4c60-8152-d628adf4ad4d", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.878535Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet4", + "natural_slug": "gigabitethernet4_test100_test-tenant_child-test-location_parent-test-location_8847", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": "Test Tenant", + "tenant_group": "Test Tenant Group" + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.493001Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "68efcdc5-9817-41a4-b43d-ac0d71de1258", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.493021Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test100-vm_eth0_68ef", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.531848Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "5f6c793c-67bd-49c1-86f7-c4329d5b3e31", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.531868Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test100-vm_eth1_5f6c", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.567074Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "a4855b52-d842-4ab3-9bfc-0bd09e25d449", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.567095Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test100-vm_eth2_a485", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.603016Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "a5b6426a-e16a-4653-b975-06318e7b0bcd", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.603038Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test100-vm_eth3_a5b6", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.639169Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "fafbd094-dc87-48c1-85ff-befa3acddc5d", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.639189Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test100-vm_eth4_fafb", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.675591Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "aff5b547-577c-4b4d-aa7c-54f55689fbb7", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.675627Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test101-vm_eth0_aff5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.710839Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "2242e517-063b-437c-8bf8-2a5b5c4da3ff", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.710859Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test101-vm_eth1_2242", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.746185Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "72a3dba0-43f5-44c9-9325-b1ccb67e8a17", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.746206Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test101-vm_eth2_72a3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.784908Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "de89e19b-28d2-4449-82c0-df8866d014f5", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.784930Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test101-vm_eth3_de89", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.820145Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "a22ad719-a487-44a1-96e9-d38ca1ff3b29", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.820169Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test101-vm_eth4_a22a", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": {}, + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "all": { + "children": [ + "ungrouped", + "location_child_test_location", + "location_parent_test_location", + "rack_main_test_rack", + "rack_group_parent_rack_group", + "rack_role_test_rack_role", + "role_core_switch", + "device_type_cisco_test", + "manufacturer_cisco", + "status_active", + "tenant_test_tenant", + "service_ssh", + "service_http", + "location_child_child_test_location", + "rack_sub_test_rack", + "rack_group_child_rack_group", + "device_type_nexus_parent", + "service_telnet", + "cluster_test_cluster", + "cluster_group_test_cluster_group", + "cluster_type_test_cluster_type", + "is_virtual", + "cluster_test_cluster_2" + ] + }, + "cluster_group_test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "cluster_type_test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "device_type_cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "device_type_nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "location_child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "location_child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "location_parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "manufacturer_cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "rack_group_child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "rack_group_parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "rack_main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "rack_role_test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "rack_sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "role_core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "service_http": { + "hosts": [ + "test100" + ] + }, + "service_ssh": { + "hosts": [ + "test100", + "Test VM With Spaces" + ] + }, + "service_telnet": { + "hosts": [ + "Test Nexus One" + ] + }, + "status_active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "tenant_test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3.yml b/tests/integration/targets/inventory/files/test_2.2-3.yml new file mode 100644 index 00000000..9dbdf06d --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3.yml @@ -0,0 +1,27 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +config_context: True +plurals: False +interfaces: True +services: True + +group_by: + - location + - tenant + - rack + - rack_group + - rack_role + - tag + - role + - device_type + - manufacturer + - platform + - cluster + - cluster_group + - cluster_type + - is_virtual + - services + - status diff --git a/tests/integration/targets/inventory/files/test_2.2-3_legacy.json b/tests/integration/targets/inventory/files/test_2.2-3_legacy.json new file mode 100644 index 00000000..59d12f1b --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_legacy.json @@ -0,0 +1,778 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "racks": [ + "Main Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Nexus Parent" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "primary_ip4": "172.16.180.11", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "racks": [ + "Sub Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant_group": "Test Tenant Group", + "tenants": [ + "Test Tenant" + ] + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "all": { + "children": [ + "ungrouped" + ] + }, + "ungrouped": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_legacy.yml b/tests/integration/targets/inventory/files/test_2.2-3_legacy.yml new file mode 100644 index 00000000..8eed6372 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_legacy.yml @@ -0,0 +1,9 @@ +# To generate the json result, I checked out inventory.yml from the v0.2.0 release 2d6894b, +# and then ran it against this inventory with the latest test data. + +# Checks that substantial work on the inventory does not diverge from what existing users are using by default. + +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: false diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options.json b/tests/integration/targets/inventory/files/test_2.2-3_options.json new file mode 100644 index 00000000..1712f3e0 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options.json @@ -0,0 +1,474 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "custom_fields": {}, + "device_type": "Cisco Test", + "display": "R1-Device", + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Main Test Rack", + "rack_groups": [ + "Parent Rack Group" + ], + "rack_id": "17e3b2ab-1ca9-4c40-a3a7-8ccdcf1b4bb4", + "rack_role": "Test Rack Role", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "Test VM With Spaces", + "is_virtual": true, + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "custom_fields": {}, + "device_type": "Cisco Test", + "display": "TestDeviceR1", + "is_virtual": false, + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Sub Test Rack", + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "rack_id": "809a01a4-8640-4ce7-8163-76901aa4211f", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "VC1": { + "ansible_host": "nexus.example.com", + "custom_fields": {}, + "device_type": "Nexus Parent", + "display": "Test Nexus One", + "dns_name": "nexus.example.com", + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "primary_ip4": "172.16.180.11", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "custom_fields": {}, + "device_type": "Cisco Test", + "display": "test100", + "is_virtual": false, + "local_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "role": "Core Switch", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": "Test Tenant", + "tenant_group": "Test Tenant Group" + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test100-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test101-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test102-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test103-vm", + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "custom_fields": {}, + "display": "test104-vm", + "is_virtual": true, + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "all": { + "children": [ + "ungrouped", + "child_test_location", + "parent_test_location", + "main_test_rack", + "parent_rack_group", + "test_rack_role", + "core_switch", + "cisco_test", + "cisco", + "active", + "test_tenant", + "jinja_test_group", + "child_child_test_location", + "sub_test_rack", + "child_rack_group", + "nexus_parent", + "test_cluster", + "test_cluster_group", + "test_cluster_type", + "is_virtual", + "test_cluster_2" + ] + }, + "child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1" + ] + }, + "cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "jinja_test_group": { + "hosts": [ + "TestDeviceR1", + "Test VM With Spaces" + ] + }, + "main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "nexus_parent": { + "hosts": [ + "VC1" + ] + }, + "parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "VC1", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options.yml b/tests/integration/targets/inventory/files/test_2.2-3_options.yml new file mode 100644 index 00000000..50875085 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options.yml @@ -0,0 +1,60 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +# Cache is not for performance of tests, but to test the caching option works +# Also set on test-inventory-plurals.yml so that we actually hit the cache on one of these runs +cache: True +cache_timeout: 3600 +cache_plugin: jsonfile +cache_connection: /tmp/inventory_nautobot + +config_context: False +plurals: False +interfaces: False +services: False +group_names_raw: True +virtual_chassis_name: True +dns_name: True +ansible_host_dns_name: True + +group_by: + - location + - tenant + - rack + - rack_group + - rack_role + - tag + - role + - device_type + - manufacturer + - platform + - cluster + - cluster_group + - cluster_type + - is_virtual + - status + +query_filters: + +device_query_filters: + - role: "Core Switch" + +vm_query_filters: + - cluster_type: "Test Cluster Type" + +# See Constructed for details +# https://docs.ansible.com/ansible/latest/plugins/inventory/constructed.html + +compose: + display: display + rack_id: rack.id + ntp_servers: config_context.ntp_servers + +keyed_groups: + - prefix: rack + key: rack.name + +groups: + jinja_test_group: inventory_hostname.startswith('Test') diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.json b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.json new file mode 100644 index 00000000..ffa91949 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.json @@ -0,0 +1,2835 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Main Test Rack", + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "device_type": "Nexus Parent", + "dns_name": "nexus.example.com", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.449934Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.494441Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "56a8ae15-5543-496f-addf-5038a27a3cb0", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/56a8ae15-5543-496f-addf-5038a27a3cb0/" + }, + "display": "Test Nexus Child One", + "face": null, + "id": "3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a", + "last_updated": "2024-03-27T17:38:39.854921Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus Child One", + "natural_slug": "test-nexus-child-one__child-test-location_parent-test-location_3d0c", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/", + "vc_position": 2, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet2/1", + "enabled": true, + "id": "f4796f28-9625-43eb-9b99-8684cf6f535a", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.12/24", + "created": "2024-03-27T17:38:41.943535Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.12/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.12", + "id": "e0e90260-e594-4731-93ab-5efca44b55e7", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.943593Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-12_e0e9", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.449955Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet2/1", + "natural_slug": "ethernet2-1_test-nexus-child-one__child-test-location_parent-test-location_f479", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.395148Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet1/1", + "enabled": true, + "id": "2f84a3d8-6923-4daf-8817-a79e62576085", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.11/24", + "created": "2024-03-27T17:38:41.904010Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.11/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.11", + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.904032Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-11_25de", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.395169Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet1/1", + "natural_slug": "ethernet1-1_test-nexus-one__child-test-location_parent-test-location_2f84", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/", + "vrf": null + } + ], + "is_virtual": false, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "primary_ip4": "172.16.180.11", + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.856585Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "69c3d77b-1523-43a8-acde-61e993c7f011", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.856616Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth0_69c3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.895334Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "0c4b09cb-d1b9-47aa-ae7c-9bce45792c65", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.895355Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth1_0c4b", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "device_type": "Cisco Test", + "interfaces": [], + "is_virtual": false, + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "rack": "Sub Test Rack", + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "role": "Core Switch", + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "device_type": "Cisco Test", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.714492Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet1", + "enabled": true, + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.714514Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet1", + "natural_slug": "gigabitethernet1_test100_test-tenant_child-test-location_parent-test-location_52f9", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.769927Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet2", + "enabled": true, + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "2001::ffff:ffff:ffff:ffff", + "created": "2024-03-27T17:38:33.624801Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "2001::/64", + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:33.624822Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_2001_64_386d", + "network": "2001::", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "2001::/64", + "prefix_length": 64, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.769947Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet2", + "natural_slug": "gigabitethernet2_test100_test-tenant_child-test-location_parent-test-location_1747", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.823634Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet3", + "enabled": true, + "id": "0f0ab93e-e3f6-4b86-81dd-8d2b7542b999", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.823708Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet3", + "natural_slug": "gigabitethernet3_test100_test-tenant_child-test-location_parent-test-location_0f0a", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.878515Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet4", + "enabled": true, + "id": "884700bf-df8c-4c60-8152-d628adf4ad4d", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.878535Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet4", + "natural_slug": "gigabitethernet4_test100_test-tenant_child-test-location_parent-test-location_8847", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturer": "Cisco", + "ntp_servers": [ + "pool.ntp.org" + ], + "role": "Core Switch", + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": "Test Tenant", + "tenant_group": "Test Tenant Group" + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.493001Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "68efcdc5-9817-41a4-b43d-ac0d71de1258", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.493021Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test100-vm_eth0_68ef", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.531848Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "5f6c793c-67bd-49c1-86f7-c4329d5b3e31", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.531868Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test100-vm_eth1_5f6c", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.567074Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "a4855b52-d842-4ab3-9bfc-0bd09e25d449", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.567095Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test100-vm_eth2_a485", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.603016Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "a5b6426a-e16a-4653-b975-06318e7b0bcd", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.603038Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test100-vm_eth3_a5b6", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.639169Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "fafbd094-dc87-48c1-85ff-befa3acddc5d", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.639189Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test100-vm_eth4_fafb", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.675591Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "aff5b547-577c-4b4d-aa7c-54f55689fbb7", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.675627Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test101-vm_eth0_aff5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.710839Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "2242e517-063b-437c-8bf8-2a5b5c4da3ff", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.710859Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test101-vm_eth1_2242", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.746185Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "72a3dba0-43f5-44c9-9325-b1ccb67e8a17", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.746206Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test101-vm_eth2_72a3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.784908Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "de89e19b-28d2-4449-82c0-df8866d014f5", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.784930Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test101-vm_eth3_de89", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.820145Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "a22ad719-a487-44a1-96e9-d38ca1ff3b29", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.820169Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test101-vm_eth4_a22a", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "interfaces": [], + "is_virtual": true, + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "interfaces": [], + "is_virtual": true, + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "all": { + "children": [ + "ungrouped", + "child_test_location", + "parent_test_location", + "main_test_rack", + "parent_rack_group", + "test_rack_role", + "core_switch", + "cisco_test", + "cisco", + "active", + "test_tenant", + "test_tenant_group", + "child_child_test_location", + "sub_test_rack", + "child_rack_group", + "nexus_parent", + "test_cluster", + "test_cluster_group", + "test_cluster_type", + "is_virtual", + "test_cluster_2" + ] + }, + "child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "test_tenant": { + "hosts": [ + "test100" + ] + }, + "test_tenant_group": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.yml b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.yml new file mode 100644 index 00000000..7f59c25e --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_options_flatten.yml @@ -0,0 +1,39 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +# Use cache on this test to make sure interfaces is tested via the cache +cache: True +cache_timeout: 3600 +cache_plugin: jsonfile +cache_connection: /tmp/inventory_nautobot + +config_context: True +flatten_config_context: True +flatten_custom_fields: True +flatten_local_context_data: True +plurals: False +interfaces: True +services: True +fetch_all: False +max_uri_length: 0 +group_names_raw: True + +group_by: + - location + - tenant + - tenant_group + - rack + - rack_group + - rack_role + - tag + - role + - device_type + - manufacturer + - platform + - cluster + - cluster_group + - cluster_type + - is_virtual + - status diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals.json b/tests/integration/targets/inventory/files/test_2.2-3_plurals.json new file mode 100644 index 00000000..d4077530 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals.json @@ -0,0 +1,2952 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "config_context": [ + {} + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "interfaces": [], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "racks": [ + "Main Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "config_context": [ + {} + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Nexus Parent" + ], + "dns_name": "nexus.example.com", + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.449934Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.494441Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "56a8ae15-5543-496f-addf-5038a27a3cb0", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/56a8ae15-5543-496f-addf-5038a27a3cb0/" + }, + "display": "Test Nexus Child One", + "face": null, + "id": "3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a", + "last_updated": "2024-03-27T17:38:39.854921Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus Child One", + "natural_slug": "test-nexus-child-one__child-test-location_parent-test-location_3d0c", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/3d0c8f54-d24d-4d7a-8f5b-7a536fe0cc5a/", + "vc_position": 2, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet2/1", + "enabled": true, + "id": "f4796f28-9625-43eb-9b99-8684cf6f535a", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.12/24", + "created": "2024-03-27T17:38:41.943535Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.12/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.12", + "id": "e0e90260-e594-4731-93ab-5efca44b55e7", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.943593Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-12_e0e9", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/e0e90260-e594-4731-93ab-5efca44b55e7/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.449955Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet2/1", + "natural_slug": "ethernet2-1_test-nexus-child-one__child-test-location_parent-test-location_f479", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/f4796f28-9625-43eb-9b99-8684cf6f535a/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.395148Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "Ethernet1/1", + "enabled": true, + "id": "2f84a3d8-6923-4daf-8817-a79e62576085", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.11/24", + "created": "2024-03-27T17:38:41.904010Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.11/24", + "dns_name": "nexus.example.com", + "host": "172.16.180.11", + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.904032Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-11_25de", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.395169Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "Ethernet1/1", + "natural_slug": "ethernet1-1_test-nexus-one__child-test-location_parent-test-location_2f84", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/2f84a3d8-6923-4daf-8817-a79e62576085/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "primary_ip4": "172.16.180.11", + "services": [ + { + "created": "2024-03-27T17:38:46.460861Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.423871Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "3d51d3ca-454b-4824-859e-4601eb8022bd", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/3d51d3ca-454b-4824-859e-4601eb8022bd/" + }, + "display": "Test Nexus One", + "face": null, + "id": "b7867e42-ccb0-4251-be86-ea7b9a84b104", + "last_updated": "2024-03-27T17:38:43.334405Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "Test Nexus One", + "natural_slug": "test-nexus-one__child-test-location_parent-test-location_b786", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": { + "id": "25dedf45-b258-442f-829e-e54774ce8017", + "object_type": "ipam.ipaddress", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/25dedf45-b258-442f-829e-e54774ce8017/" + }, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/dcim/devices/b7867e42-ccb0-4251-be86-ea7b9a84b104/", + "vc_position": 0, + "vc_priority": null, + "virtual_chassis": { + "id": "c96554c7-425c-4064-aae8-c11bcffeca62", + "object_type": "dcim.virtualchassis", + "url": "http://127.0.0.1:8000/api/dcim/virtual-chassis/c96554c7-425c-4064-aae8-c11bcffeca62/" + } + }, + "display": "telnet (TCP/23)", + "id": "9113902d-6ec7-4585-babf-4ac87889c7e3", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.460883Z", + "name": "telnet", + "natural_slug": "telnet____test-nexus-one__child-test-location_parent-test-location_9113", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/notes/", + "object_type": "ipam.service", + "ports": [ + 23 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/9113902d-6ec7-4585-babf-4ac87889c7e3/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.856585Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "69c3d77b-1523-43a8-acde-61e993c7f011", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.856616Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth0_69c3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/69c3d77b-1523-43a8-acde-61e993c7f011/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.895334Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "0c4b09cb-d1b9-47aa-ae7c-9bce45792c65", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.895355Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster-2__test-vm-with-spaces_eth1_0c4b", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/0c4b09cb-d1b9-47aa-ae7c-9bce45792c65/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [ + { + "created": "2024-03-27T17:38:46.503654Z", + "custom_fields": {}, + "description": "", + "device": null, + "display": "ssh (TCP/22)", + "id": "fa302796-cedb-4484-a324-a1569ae9c4ba", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.503676Z", + "name": "ssh", + "natural_slug": "ssh_test-cluster-2__test-vm-with-spaces_fa30", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/fa302796-cedb-4484-a324-a1569ae9c4ba/", + "virtual_machine": { + "cluster": { + "id": "48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/48f3c0e7-e0d8-4af7-a9f8-4b28530b6e2b/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.562206Z", + "custom_fields": {}, + "disk": null, + "display": "Test VM With Spaces", + "id": "1ff0d587-3843-402a-a9a0-d229e743b008", + "last_updated": "2024-03-27T17:38:44.562228Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "Test VM With Spaces", + "natural_slug": "test-cluster-2__test-vm-with-spaces_1ff0", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ff0d587-3843-402a-a9a0-d229e743b008/", + "vcpus": null + } + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "config_context": [ + {} + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "interfaces": [], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "racks": [ + "Sub Test Rack" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "config_context": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "custom_fields": {}, + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "interfaces": [ + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.714492Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet1", + "enabled": true, + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "172.31.255.255", + "created": "2024-03-27T17:38:33.543642Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "172.16.0.0/12", + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "ip_version": 4, + "last_updated": "2024-03-27T17:38:33.543671Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_172-16-0-0_12_0733", + "network": "172.16.0.0", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "172.16.0.0/12", + "prefix_length": 12, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.714514Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet1", + "natural_slug": "gigabitethernet1_test100_test-tenant_child-test-location_parent-test-location_52f9", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.769927Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet2", + "enabled": true, + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "ip_address_count": 1, + "ip_addresses": [ + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "broadcast": "2001::ffff:ffff:ffff:ffff", + "created": "2024-03-27T17:38:33.624801Z", + "custom_fields": {}, + "date_allocated": null, + "description": "", + "display": "2001::/64", + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "ip_version": 6, + "last_updated": "2024-03-27T17:38:33.624822Z", + "namespace": { + "created": "2024-03-27T17:37:15.805479Z", + "custom_fields": {}, + "description": "Default Global namespace. Created by Nautobot.", + "display": "Global", + "id": "a21f42e2-e600-4eea-bf7c-644f7304b4e2", + "last_updated": "2024-03-27T17:37:15.805514Z", + "location": null, + "name": "Global", + "natural_slug": "global_a21f", + "notes_url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/notes/", + "object_type": "ipam.namespace", + "url": "http://127.0.0.1:8000/api/ipam/namespaces/a21f42e2-e600-4eea-bf7c-644f7304b4e2/" + }, + "natural_slug": "global_2001_64_386d", + "network": "2001::", + "notes_url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/notes/", + "object_type": "ipam.prefix", + "parent": null, + "prefix": "2001::/64", + "prefix_length": 64, + "rir": null, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": { + "label": "Network", + "value": "network" + }, + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/", + "vlan": null + }, + "role": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/" + } + ], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.769947Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet2", + "natural_slug": "gigabitethernet2_test100_test-tenant_child-test-location_parent-test-location_1747", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.823634Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet3", + "enabled": true, + "id": "0f0ab93e-e3f6-4b86-81dd-8d2b7542b999", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.823708Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet3", + "natural_slug": "gigabitethernet3_test100_test-tenant_child-test-location_parent-test-location_0f0a", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/0f0ab93e-e3f6-4b86-81dd-8d2b7542b999/", + "vrf": null + }, + { + "bridge": null, + "cable": null, + "cable_peer": null, + "cable_peer_type": null, + "connected_endpoint": null, + "connected_endpoint_reachable": null, + "connected_endpoint_type": null, + "created": "2024-03-27T17:38:40.878515Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "GigabitEthernet4", + "enabled": true, + "id": "884700bf-df8c-4c60-8152-d628adf4ad4d", + "ip_address_count": 0, + "ip_addresses": [], + "label": "", + "lag": null, + "last_updated": "2024-03-27T17:38:40.878535Z", + "mac_address": null, + "mgmt_only": false, + "mode": null, + "mtu": null, + "name": "GigabitEthernet4", + "natural_slug": "gigabitethernet4_test100_test-tenant_child-test-location_parent-test-location_8847", + "notes_url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/notes/", + "object_type": "dcim.interface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "type": { + "label": "1000BASE-T (1GE)", + "value": "1000base-t" + }, + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/dcim/interfaces/884700bf-df8c-4c60-8152-d628adf4ad4d/", + "vrf": null + } + ], + "is_virtual": false, + "local_context_data": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "services": [ + { + "created": "2024-03-27T17:38:46.266002Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "ssh (TCP/22)", + "id": "6c74dff6-acf8-44a6-a9a0-1ff519eff6df", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:46.266022Z", + "name": "ssh", + "natural_slug": "ssh____test100_test-tenant_child-test-location_parent-test-location_6c74", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/notes/", + "object_type": "ipam.service", + "ports": [ + 22 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/6c74dff6-acf8-44a6-a9a0-1ff519eff6df/", + "virtual_machine": null + }, + { + "created": "2024-03-27T17:38:46.330100Z", + "custom_fields": {}, + "description": "", + "device": { + "asset_tag": null, + "cluster": null, + "comments": "", + "controller_device_group": null, + "created": "2024-03-27T17:38:37.149539Z", + "custom_fields": {}, + "device_redundancy_group": null, + "device_redundancy_group_priority": null, + "device_type": { + "id": "95784626-b8a8-4810-8ebf-4c75b4b2e90f", + "object_type": "dcim.devicetype", + "url": "http://127.0.0.1:8000/api/dcim/device-types/95784626-b8a8-4810-8ebf-4c75b4b2e90f/" + }, + "display": "test100", + "face": null, + "id": "d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3", + "last_updated": "2024-03-27T17:38:37.149559Z", + "local_config_context_data": { + "ntp_servers": [ + "pool.ntp.org" + ] + }, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "location": { + "id": "73e14892-23ef-463b-8285-7e50ee48ea67", + "object_type": "dcim.location", + "url": "http://127.0.0.1:8000/api/dcim/locations/73e14892-23ef-463b-8285-7e50ee48ea67/" + }, + "name": "test100", + "natural_slug": "test100_test-tenant_child-test-location_parent-test-location_d586", + "notes_url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/notes/", + "object_type": "dcim.device", + "parent_bay": null, + "platform": null, + "position": null, + "primary_ip4": null, + "primary_ip6": null, + "rack": null, + "role": { + "id": "15d32a44-c450-41bc-9fae-d1a4581dcaea", + "object_type": "extras.role", + "url": "http://127.0.0.1:8000/api/extras/roles/15d32a44-c450-41bc-9fae-d1a4581dcaea/" + }, + "secrets_group": null, + "serial": "", + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": { + "id": "9f8b10f8-9513-4581-94a2-41cefc3735dd", + "object_type": "tenancy.tenant", + "url": "http://127.0.0.1:8000/api/tenancy/tenants/9f8b10f8-9513-4581-94a2-41cefc3735dd/" + }, + "url": "http://127.0.0.1:8000/api/dcim/devices/d586c1fd-27c7-4e4a-bac9-a2a62b6df7e3/", + "vc_position": null, + "vc_priority": null, + "virtual_chassis": null + }, + "display": "http (TCP/80)", + "id": "c84e3af1-85b3-4a93-8075-83f2245294c4", + "ip_addresses": [ + { + "address": "172.16.180.1/24", + "created": "2024-03-27T17:38:41.821095Z", + "custom_fields": {}, + "description": "", + "display": "172.16.180.1/24", + "dns_name": "", + "host": "172.16.180.1", + "id": "1e99a20d-b55f-48d4-97a5-1200e4a30213", + "interfaces": [ + { + "id": "52f98b02-b953-4e0a-972b-e1b3aa0f6f59", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/52f98b02-b953-4e0a-972b-e1b3aa0f6f59/" + } + ], + "ip_version": 4, + "last_updated": "2024-03-27T17:38:41.821119Z", + "mask_length": 24, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_172-16-180-1_1e99", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "0733b370-dae3-49d5-97ee-911ddd7fdc53", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/0733b370-dae3-49d5-97ee-911ddd7fdc53/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/1e99a20d-b55f-48d4-97a5-1200e4a30213/", + "vm_interfaces": [] + }, + { + "address": "2001::1:1/64", + "created": "2024-03-27T17:38:41.863826Z", + "custom_fields": {}, + "description": "", + "display": "2001::1:1/64", + "dns_name": "", + "host": "2001::1:1", + "id": "17b14b12-322f-4ce0-bf66-5d2669815aef", + "interfaces": [ + { + "id": "1747ac15-09ee-4698-bde0-a02fbe5aed33", + "object_type": "dcim.interface", + "url": "http://127.0.0.1:8000/api/dcim/interfaces/1747ac15-09ee-4698-bde0-a02fbe5aed33/" + } + ], + "ip_version": 6, + "last_updated": "2024-03-27T17:38:41.863861Z", + "mask_length": 64, + "nat_inside": null, + "nat_outside_list": [], + "natural_slug": "global_2001-1-1_17b1", + "notes_url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/notes/", + "object_type": "ipam.ipaddress", + "parent": { + "id": "386da78d-6b55-4c43-be8d-6eb33366a95c", + "object_type": "ipam.prefix", + "url": "http://127.0.0.1:8000/api/ipam/prefixes/386da78d-6b55-4c43-be8d-6eb33366a95c/" + }, + "role": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "type": "host", + "url": "http://127.0.0.1:8000/api/ipam/ip-addresses/17b14b12-322f-4ce0-bf66-5d2669815aef/", + "vm_interfaces": [] + } + ], + "last_updated": "2024-03-27T17:38:46.330122Z", + "name": "http", + "natural_slug": "http____test100_test-tenant_child-test-location_parent-test-location_c84e", + "notes_url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/notes/", + "object_type": "ipam.service", + "ports": [ + 80 + ], + "protocol": { + "label": "TCP", + "value": "tcp" + }, + "tags": [], + "url": "http://127.0.0.1:8000/api/ipam/services/c84e3af1-85b3-4a93-8075-83f2245294c4/", + "virtual_machine": null + } + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant_group": "Test Tenant Group", + "tenants": [ + "Test Tenant" + ] + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.493001Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "68efcdc5-9817-41a4-b43d-ac0d71de1258", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.493021Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test100-vm_eth0_68ef", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/68efcdc5-9817-41a4-b43d-ac0d71de1258/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.531848Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "5f6c793c-67bd-49c1-86f7-c4329d5b3e31", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.531868Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test100-vm_eth1_5f6c", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/5f6c793c-67bd-49c1-86f7-c4329d5b3e31/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.567074Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "a4855b52-d842-4ab3-9bfc-0bd09e25d449", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.567095Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test100-vm_eth2_a485", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a4855b52-d842-4ab3-9bfc-0bd09e25d449/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.603016Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "a5b6426a-e16a-4653-b975-06318e7b0bcd", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.603038Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test100-vm_eth3_a5b6", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a5b6426a-e16a-4653-b975-06318e7b0bcd/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.639169Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "fafbd094-dc87-48c1-85ff-befa3acddc5d", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.639189Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test100-vm_eth4_fafb", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/fafbd094-dc87-48c1-85ff-befa3acddc5d/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.383003Z", + "custom_fields": {}, + "disk": null, + "display": "test100-vm", + "id": "1ea51f9d-3d1c-4122-b6cd-62e49abfebcb", + "last_updated": "2024-03-27T17:38:44.383024Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test100-vm", + "natural_slug": "test-cluster__test100-vm_1ea5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/1ea51f9d-3d1c-4122-b6cd-62e49abfebcb/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [ + { + "bridge": null, + "created": "2024-03-27T17:38:45.675591Z", + "custom_fields": {}, + "description": "", + "display": "Eth0", + "enabled": true, + "id": "aff5b547-577c-4b4d-aa7c-54f55689fbb7", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.675627Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth0", + "natural_slug": "test-cluster__test101-vm_eth0_aff5", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/aff5b547-577c-4b4d-aa7c-54f55689fbb7/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.710839Z", + "custom_fields": {}, + "description": "", + "display": "Eth1", + "enabled": true, + "id": "2242e517-063b-437c-8bf8-2a5b5c4da3ff", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.710859Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth1", + "natural_slug": "test-cluster__test101-vm_eth1_2242", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/2242e517-063b-437c-8bf8-2a5b5c4da3ff/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.746185Z", + "custom_fields": {}, + "description": "", + "display": "Eth2", + "enabled": true, + "id": "72a3dba0-43f5-44c9-9325-b1ccb67e8a17", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.746206Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth2", + "natural_slug": "test-cluster__test101-vm_eth2_72a3", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/72a3dba0-43f5-44c9-9325-b1ccb67e8a17/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.784908Z", + "custom_fields": {}, + "description": "", + "display": "Eth3", + "enabled": true, + "id": "de89e19b-28d2-4449-82c0-df8866d014f5", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.784930Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth3", + "natural_slug": "test-cluster__test101-vm_eth3_de89", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/de89e19b-28d2-4449-82c0-df8866d014f5/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + }, + { + "bridge": null, + "created": "2024-03-27T17:38:45.820145Z", + "custom_fields": {}, + "description": "", + "display": "Eth4", + "enabled": true, + "id": "a22ad719-a487-44a1-96e9-d38ca1ff3b29", + "ip_addresses": [], + "last_updated": "2024-03-27T17:38:45.820169Z", + "mac_address": null, + "mode": null, + "mtu": null, + "name": "Eth4", + "natural_slug": "test-cluster__test101-vm_eth4_a22a", + "notes_url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/notes/", + "object_type": "virtualization.vminterface", + "parent_interface": null, + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tagged_vlans": [], + "tags": [], + "untagged_vlan": null, + "url": "http://127.0.0.1:8000/api/virtualization/interfaces/a22ad719-a487-44a1-96e9-d38ca1ff3b29/", + "virtual_machine": { + "cluster": { + "id": "6af71c22-6611-4079-9957-f078f504ebde", + "object_type": "virtualization.cluster", + "url": "http://127.0.0.1:8000/api/virtualization/clusters/6af71c22-6611-4079-9957-f078f504ebde/" + }, + "comments": "", + "created": "2024-03-27T17:38:44.422957Z", + "custom_fields": {}, + "disk": null, + "display": "test101-vm", + "id": "7c54b8ed-0230-42e8-a7a2-4ddb8e09632f", + "last_updated": "2024-03-27T17:38:44.422978Z", + "local_config_context_data": null, + "local_config_context_data_owner_content_type": null, + "local_config_context_data_owner_object_id": null, + "local_config_context_schema": null, + "memory": null, + "name": "test101-vm", + "natural_slug": "test-cluster__test101-vm_7c54", + "notes_url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/notes/", + "object_type": "virtualization.virtualmachine", + "platform": null, + "primary_ip4": null, + "primary_ip6": null, + "role": null, + "software_version": null, + "status": { + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tenant": null, + "url": "http://127.0.0.1:8000/api/virtualization/virtual-machines/7c54b8ed-0230-42e8-a7a2-4ddb8e09632f/", + "vcpus": null + }, + "vrf": null + } + ], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "config_context": [ + {} + ], + "custom_fields": {}, + "interfaces": [], + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "services": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "all": { + "children": [ + "ungrouped", + "locations_child_test_location", + "locations_parent_test_location", + "racks_main_test_rack", + "rack_group_parent_rack_group", + "rack_role_test_rack_role", + "device_roles_core_switch", + "device_types_cisco_test", + "manufacturers_cisco", + "status_active", + "location_parent_test_location", + "location_parent_test_location_2", + "tenants_test_tenant", + "tenant_group_test_tenant_group", + "locations_child_child_test_location", + "racks_sub_test_rack", + "rack_group_child_rack_group", + "device_types_nexus_parent", + "cluster_test_cluster", + "cluster_group_test_cluster_group", + "cluster_type_test_cluster_type", + "is_virtual", + "cluster_test_cluster_2" + ] + }, + "cluster_group_test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cluster_test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "cluster_type_test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "device_roles_core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "device_types_cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "device_types_nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "location_child_test_location": { + "children": [ + "location_child_child_test_location" + ] + }, + "location_parent_test_location": { + "children": [ + "location_child_test_location" + ] + }, + "location_parent_test_location_2": { + "children": [ + "location_child_test_location" + ] + }, + "locations_child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "locations_child_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "locations_parent_test_location": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "manufacturers_cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "rack_group_child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "rack_group_parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "rack_role_test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "racks_main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "racks_sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "status_active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "tenant_group_test_tenant_group": { + "hosts": [ + "test100" + ] + }, + "tenants_test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals.yml b/tests/integration/targets/inventory/files/test_2.2-3_plurals.yml new file mode 100644 index 00000000..26c6f213 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals.yml @@ -0,0 +1,36 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: false + +cache: True +cache_timeout: 3600 +cache_plugin: jsonfile +cache_connection: /tmp/inventory_nautobot + +config_context: True +plurals: True +interfaces: True +services: True + +# Enough to fit only 2 devices, so tests chunking logic +max_uri_length: 80 +fetch_all: False + +group_by: + - locations + - tenants + - tenant_group + - racks + - rack_group + - rack_role + - tags + - device_roles + - device_types + - manufacturers + - platforms + - cluster + - cluster_group + - cluster_type + - is_virtual + - status diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.json b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.json new file mode 100644 index 00000000..4e770824 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.json @@ -0,0 +1,516 @@ +{ + "_meta": { + "hostvars": { + "R1-Device": { + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Parent Rack Group" + ], + "rack_role": "Test Rack Role", + "racks": [ + "Main Test Rack" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test Nexus One": { + "ansible_host": "172.16.180.11", + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Nexus Parent" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "primary_ip4": "172.16.180.11", + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "Test VM With Spaces": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "TestDeviceR1": { + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + null + ], + "location": "Child-Child Test Location", + "locations": [ + "Child-Child Test Location", + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "rack_groups": [ + "Child Rack Group", + "Parent Rack Group" + ], + "racks": [ + "Sub Test Rack" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test100": { + "device_roles": [ + "Core Switch" + ], + "device_types": [ + "Cisco Test" + ], + "is_virtual": false, + "local_context_data": [ + { + "ntp_servers": [ + "pool.ntp.org" + ] + } + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "manufacturers": [ + "Cisco" + ], + "ntp_servers": [ + "pool.ntp.org" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [], + "tenant_group": "Test Tenant Group", + "tenants": [ + "Test Tenant" + ] + }, + "test100-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test101-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test102-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test103-vm": { + "cluster": "Test Cluster", + "cluster_group": "Test Cluster Group", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "location": "Child Test Location", + "locations": [ + "Child Test Location", + "Parent Test Location" + ], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + }, + "test104-vm": { + "cluster": "Test Cluster 2", + "cluster_type": "Test Cluster Type", + "is_virtual": true, + "local_context_data": [ + null + ], + "locations": [], + "status": { + "color": "4caf50", + "created": "2024-03-27T00:00:00Z", + "custom_fields": {}, + "description": "Unit is active", + "display": "Active", + "id": "c3377784-68ed-4e2b-88fe-7095d0c2a195", + "last_updated": "2024-03-27T17:37:43.694424Z", + "name": "Active", + "natural_slug": "active_c337", + "notes_url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/notes/", + "object_type": "extras.status", + "url": "http://127.0.0.1:8000/api/extras/statuses/c3377784-68ed-4e2b-88fe-7095d0c2a195/" + }, + "tags": [] + } + } + }, + "active": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "all": { + "children": [ + "ungrouped", + "parent_test_location", + "main_test_rack", + "parent_rack_group", + "test_rack_role", + "core_switch", + "cisco_test", + "cisco", + "active", + "parent_test_location_2", + "test_tenant", + "sub_test_rack", + "child_rack_group", + "nexus_parent", + "test_cluster", + "test_cluster_group", + "test_cluster_type", + "is_virtual", + "test_cluster_2" + ] + }, + "child_child_test_location": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_rack_group": { + "hosts": [ + "TestDeviceR1" + ] + }, + "child_test_location": { + "children": [ + "child_child_test_location" + ], + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "cisco": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "cisco_test": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1" + ] + }, + "core_switch": { + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One" + ] + }, + "is_virtual": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "main_test_rack": { + "hosts": [ + "R1-Device" + ] + }, + "nexus_parent": { + "hosts": [ + "Test Nexus One" + ] + }, + "parent_rack_group": { + "hosts": [ + "R1-Device", + "TestDeviceR1" + ] + }, + "parent_test_location": { + "children": [ + "child_test_location" + ], + "hosts": [ + "R1-Device", + "test100", + "TestDeviceR1", + "Test Nexus One", + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "parent_test_location_2": { + "children": [ + "child_test_location" + ] + }, + "sub_test_rack": { + "hosts": [ + "TestDeviceR1" + ] + }, + "test_cluster": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_2": { + "hosts": [ + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_cluster_group": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm" + ] + }, + "test_cluster_type": { + "hosts": [ + "test100-vm", + "test101-vm", + "test102-vm", + "test103-vm", + "test104-vm", + "Test VM With Spaces" + ] + }, + "test_rack_role": { + "hosts": [ + "R1-Device" + ] + }, + "test_tenant": { + "hosts": [ + "test100" + ] + } +} \ No newline at end of file diff --git a/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.yml b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.yml new file mode 100644 index 00000000..0ee90ad3 --- /dev/null +++ b/tests/integration/targets/inventory/files/test_2.2-3_plurals_flatten.yml @@ -0,0 +1,30 @@ +plugin: networktocode.nautobot.inventory +api_endpoint: "http://nautobot:8000" +token: "0123456789abcdef0123456789abcdef01234567" +validate_certs: False + +config_context: True +flatten_config_context: True +flatten_custom_fields: True +plurals: True +interfaces: False +services: False +fetch_all: True +group_names_raw: True + +group_by: + - locations + - tenants + - racks + - rack_group + - rack_role + - tags + - device_roles + - device_types + - manufacturers + - platforms + - cluster + - cluster_group + - cluster_type + - is_virtual + - status From 22756f49c3ed19819a52b972067c1d185304467a Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 27 Mar 2024 13:14:10 -0500 Subject: [PATCH 19/36] Adds inventory test README --- tests/integration/targets/inventory/README.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/integration/targets/inventory/README.md diff --git a/tests/integration/targets/inventory/README.md b/tests/integration/targets/inventory/README.md new file mode 100644 index 00000000..39e98fb7 --- /dev/null +++ b/tests/integration/targets/inventory/README.md @@ -0,0 +1,39 @@ +# Inventory Integration Tests + +This README is focused directly on the inventory integration tests + +## Versioning + +As Nautobot continues to move forward into new versions and add new models, the dynamic inventory that is returned can change. +In an attempt to combat this we need to incorporate a minimum and maximum version number for each test so that we can still test old versions while being able to adapt and iterate for new versions. +Currently we include the min and max versions as part of the filename to indicate which Nautobot versions the test is compatible with. + +The pattern for all inventory test files should be as such: `test_{min version}-{max version}(optional extra moniker).yml` + +The minimum version should be **inclusive** and the maximum version should be **exclusive**. +For example, the filename test_2-2.2.yml is for all versions greater than or equal to 2.0.0 and less than **but not equal** to 2.2.0. +Be sure to use "short" versions in the filename (`2.2` rather than `2.2.0`, `3` rather than `3.0.0`) dropping all trailing `.0`. + +We use `sort` - using the `-V` flag to designate we are sorting version numbers - to do this and you can verify the validation yourself via `bash`: + +```bash +# The pattern is min, current version, max +# If the sort doesn't change the order then it equates to True, but if the order changes than it equates to False. +> printf "%s\n%s\n%s\n" "2.0" "2.1.3" "2.2" | sort -V +2.0 # Minimum version got sorted to the top +2.1.3 # The current version got sorted to the middle, so this would equate to a match and run the test +2.2 # Maximum version got sorted to the bottom +> +> printf "%s\n%s\n%s\n" "2.0" "2.2.3" "2.2" | sort -V +2.0 # Minimum version got sorted to the top +2.2 # Maximum version got sorted to the middle +2.2.3 # Notice that the current version got sorted to the end, so this would equate to not a match +> +> printf "%s\n%s\n%s\n" "2.0" "2.2.0" "2.2" | sort -V +2.0 # Minimum version got sorted to the top +2.2 # Maximum version got sorted to the middle +2.2.0 # Just like in the last example, the full 2.2.0 got sorted above 2.2 so it would not match. The max version is exclusive. +> +``` + +> Note: We expand the **current** version to the full major.minor.patch version automatically in CI so the sorting works correctly with this pattern. If you verify with printf, make sure you use the full version number for the current version, but the short versions for the min and max to match what automation will do. From 0fcb534a7a761fca944870a2df7f8d48915d31e4 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 27 Mar 2024 13:14:48 -0500 Subject: [PATCH 20/36] Adds 2.2 placeholders to CI files --- .github/workflows/tests.yml | 4 ++++ .github/workflows/trigger_release.yml | 2 ++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 83f76956..89652e35 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -55,6 +55,8 @@ jobs: - "3.9" nautobot-version: - "2.1" + # TODO: Change to 2.2 once it's released + # - "2.2" ansible-version: - "2.14" - "2.15" @@ -77,6 +79,8 @@ jobs: nautobot-version: - "2.0" - "2.1" + # TODO: Enable 2.2 once it's released + # - "2.2" ansible-version: - "2.14" - "2.15" diff --git a/.github/workflows/trigger_release.yml b/.github/workflows/trigger_release.yml index c08e1329..db0ce587 100644 --- a/.github/workflows/trigger_release.yml +++ b/.github/workflows/trigger_release.yml @@ -46,6 +46,8 @@ jobs: nautobot-version: - "2.0" - "2.1" + # TODO: Enable 2.2 once it's released + # - "2.2" ansible-version: - "2.14" - "2.15" From 41a25792bb360aced9dfacb80520477f2ffb2d0a Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Wed, 27 Mar 2024 13:29:41 -0500 Subject: [PATCH 21/36] Updates pynautobot for testing --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index af40cb27..0248c6f0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1542,13 +1542,13 @@ testutils = ["gitpython (>3)"] [[package]] name = "pynautobot" -version = "2.0.2" +version = "2.1.1" description = "Nautobot API client library" optional = false -python-versions = ">=3.8,<4.0" +python-versions = "<4.0,>=3.8" files = [ - {file = "pynautobot-2.0.2-py3-none-any.whl", hash = "sha256:c0533bcd5ab548d23273f6be49071f09a3dec7cd65ded3507be1707d25bb5f0e"}, - {file = "pynautobot-2.0.2.tar.gz", hash = "sha256:a62f7b35d4f3492a3cfb038abfc3272567dd1d4b88703ab2736db47f40263932"}, + {file = "pynautobot-2.1.1-py3-none-any.whl", hash = "sha256:bcf56fee4733942a87dd07f956418f67580f45d08e5296c8fa3d11316c4ca419"}, + {file = "pynautobot-2.1.1.tar.gz", hash = "sha256:f01907a519689dc842f909f850737f68b53953818c97380a8101406d37e49d1b"}, ] [package.dependencies] From 4e23fe830451605ee0869c174d58785403a82cd5 Mon Sep 17 00:00:00 2001 From: Sven Date: Wed, 3 Apr 2024 13:23:57 +0000 Subject: [PATCH 22/36] ensures the idempotency for custom_fields --- plugins/module_utils/utils.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/module_utils/utils.py b/plugins/module_utils/utils.py index 0f7a0969..f45a6e58 100644 --- a/plugins/module_utils/utils.py +++ b/plugins/module_utils/utils.py @@ -913,6 +913,12 @@ def _update_object(self, data): serialized_nb_obj = self.nb_object.serialize() updated_obj = serialized_nb_obj.copy() updated_obj.update(data) + if serialized_nb_obj.get("custom_fields"): + serialized_nb_obj["custom_fields"] = { + key: value + for key, value in serialized_nb_obj["custom_fields"].items() + if value is not None + } if serialized_nb_obj.get("tags") and data.get("tags"): serialized_nb_obj["tags"] = set(serialized_nb_obj["tags"]) updated_obj["tags"] = set(data["tags"]) From ea97adc20d198039e5ccab1c771bea24a79b422f Mon Sep 17 00:00:00 2001 From: Sven Date: Wed, 3 Apr 2024 14:33:09 +0000 Subject: [PATCH 23/36] lint fixes --- plugins/module_utils/utils.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/module_utils/utils.py b/plugins/module_utils/utils.py index f45a6e58..7b07fb43 100644 --- a/plugins/module_utils/utils.py +++ b/plugins/module_utils/utils.py @@ -914,11 +914,7 @@ def _update_object(self, data): updated_obj = serialized_nb_obj.copy() updated_obj.update(data) if serialized_nb_obj.get("custom_fields"): - serialized_nb_obj["custom_fields"] = { - key: value - for key, value in serialized_nb_obj["custom_fields"].items() - if value is not None - } + serialized_nb_obj["custom_fields"] = {key: value for key, value in serialized_nb_obj["custom_fields"].items() if value is not None} if serialized_nb_obj.get("tags") and data.get("tags"): serialized_nb_obj["tags"] = set(serialized_nb_obj["tags"]) updated_obj["tags"] = set(data["tags"]) From d341fd5617779e553b6065e44b0eb4624680aa4f Mon Sep 17 00:00:00 2001 From: Sven Date: Wed, 3 Apr 2024 17:47:40 +0000 Subject: [PATCH 24/36] allow to set custom_fields for inventory items --- plugins/modules/inventory_item.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/modules/inventory_item.py b/plugins/modules/inventory_item.py index 903a1155..c8148adb 100644 --- a/plugins/modules/inventory_item.py +++ b/plugins/modules/inventory_item.py @@ -22,6 +22,7 @@ extends_documentation_fragment: - networktocode.nautobot.fragments.base - networktocode.nautobot.fragments.tags + - networktocode.nautobot.fragments.custom_fields options: device: description: @@ -145,6 +146,7 @@ def main(): asset_tag=dict(required=False, type="str"), description=dict(required=False, type="str"), discovered=dict(required=False, type="bool", default=False), + custom_fields=dict(required=False, type="dict"), tags=dict(required=False, type="list", elements="raw"), ) ) From b39385c9eb9eff477c0ea2a7977767c5c2e6bc08 Mon Sep 17 00:00:00 2001 From: Sven Date: Thu, 4 Apr 2024 07:49:23 +0000 Subject: [PATCH 25/36] an other try --- plugins/module_utils/utils.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/module_utils/utils.py b/plugins/module_utils/utils.py index 7b07fb43..9390e740 100644 --- a/plugins/module_utils/utils.py +++ b/plugins/module_utils/utils.py @@ -913,8 +913,10 @@ def _update_object(self, data): serialized_nb_obj = self.nb_object.serialize() updated_obj = serialized_nb_obj.copy() updated_obj.update(data) - if serialized_nb_obj.get("custom_fields"): - serialized_nb_obj["custom_fields"] = {key: value for key, value in serialized_nb_obj["custom_fields"].items() if value is not None} + if "custom_fields" in serialized_nb_obj: + custom_fields = serialized_nb_obj.get("custom_fields", {}) + shared_keys = custom_fields.keys() & data.get("custom_fields", {}).keys() + serialized_nb_obj["custom_fields"] = {key: custom_fields[key] for key in shared_keys if custom_fields[key] is not None} if serialized_nb_obj.get("tags") and data.get("tags"): serialized_nb_obj["tags"] = set(serialized_nb_obj["tags"]) updated_obj["tags"] = set(data["tags"]) From 2e21a7c9273e63183993fea3ffc698fa02b7fcff Mon Sep 17 00:00:00 2001 From: Sven Date: Fri, 5 Apr 2024 11:42:33 +0000 Subject: [PATCH 26/36] change condition --- plugins/module_utils/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/module_utils/utils.py b/plugins/module_utils/utils.py index 9390e740..d56fc670 100644 --- a/plugins/module_utils/utils.py +++ b/plugins/module_utils/utils.py @@ -911,12 +911,12 @@ def _update_object(self, data): Nautobot object and the Ansible diff. """ serialized_nb_obj = self.nb_object.serialize() - updated_obj = serialized_nb_obj.copy() - updated_obj.update(data) if "custom_fields" in serialized_nb_obj: custom_fields = serialized_nb_obj.get("custom_fields", {}) shared_keys = custom_fields.keys() & data.get("custom_fields", {}).keys() serialized_nb_obj["custom_fields"] = {key: custom_fields[key] for key in shared_keys if custom_fields[key] is not None} + updated_obj = serialized_nb_obj.copy() + updated_obj.update(data) if serialized_nb_obj.get("tags") and data.get("tags"): serialized_nb_obj["tags"] = set(serialized_nb_obj["tags"]) updated_obj["tags"] = set(data["tags"]) From 9c251342150cac50f4d5b3d0507d868a37fc9329 Mon Sep 17 00:00:00 2001 From: Sven Date: Mon, 15 Apr 2024 14:22:55 +0000 Subject: [PATCH 27/36] added new test for custom_fields --- tests/integration/nautobot-populate.py | 8 +++- .../targets/latest/tasks/circuit.yml | 42 +++++++++++++++++-- 2 files changed, 45 insertions(+), 5 deletions(-) diff --git a/tests/integration/nautobot-populate.py b/tests/integration/nautobot-populate.py index bbcf6a1b..04640ce2 100755 --- a/tests/integration/nautobot-populate.py +++ b/tests/integration/nautobot-populate.py @@ -586,7 +586,13 @@ def make_nautobot_calls(endpoint, payload): "key": "my_selection_custom_field", "type": "select", "content_types": ["circuits.circuit"], - } + }, + { + "label": "My Text Custom Field", + "key": "my_text_custom_field", + "type": "text", + "content_types": ["circuits.circuit"], + }, ] created_custom_fields = make_nautobot_calls(nb.extras.custom_fields, custom_fields) diff --git a/tests/integration/targets/latest/tasks/circuit.yml b/tests/integration/targets/latest/tasks/circuit.yml index fc2708df..1d40464d 100644 --- a/tests/integration/targets/latest/tasks/circuit.yml +++ b/tests/integration/targets/latest/tasks/circuit.yml @@ -121,19 +121,30 @@ - test_three['circuit']['comments'] == "FASTER CIRCUIT" - test_three['msg'] == "circuit Test Circuit One updated" -- name: "PYNAUTOBOT_CIRCUIT 4: Delete provider within nautobot" +- name: "PYNAUTOBOT_CIRCUIT 4: Update circuit with custom_field" networktocode.nautobot.circuit: url: "{{ nautobot_url }}" token: "{{ nautobot_token }}" cid: Test Circuit One - state: absent + provider: Test Provider + circuit_type: Test Circuit Type + tenant: Test Tenant + install_date: "2018-12-25" + commit_rate: 10000 + custom_fields: + my_text_custom_field: test + description: "Test circuit with updates" + comments: "FASTER CIRCUIT" + state: present register: test_four -- name: "PYNAUTOBOT_CIRCUIT 4 : ASSERT - Delete" +- name: "PYNAUTOBOT_CIRCUIT 3.1: ASSERT - Update circuit without status" assert: that: - test_four is changed - test_four['circuit']['cid'] == "Test Circuit One" + - test_four['diff']['after']['custom_fields']['my_text_custom_field'] == "test" + - test_four['circuit']['custom_fields']['my_text_custom_field'] == "test" - test_four['circuit']['provider'] == provider['key'] - test_four['circuit']['circuit_type'] == type['key'] - test_four['circuit']['status'] == planned['key'] @@ -142,4 +153,27 @@ - test_four['circuit']['commit_rate'] == 10000 - test_four['circuit']['description'] == "Test circuit with updates" - test_four['circuit']['comments'] == "FASTER CIRCUIT" - - test_four['msg'] == "circuit Test Circuit One deleted" + - test_four['msg'] == "circuit Test Circuit One updated" + +- name: "PYNAUTOBOT_CIRCUIT 5: Delete provider within nautobot" + networktocode.nautobot.circuit: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + cid: Test Circuit One + state: absent + register: test_five + +- name: "PYNAUTOBOT_CIRCUIT 5 : ASSERT - Delete" + assert: + that: + - test_five is changed + - test_five['circuit']['cid'] == "Test Circuit One" + - test_five['circuit']['provider'] == provider['key'] + - test_five['circuit']['circuit_type'] == type['key'] + - test_five['circuit']['status'] == planned['key'] + - test_five['circuit']['tenant'] == tenant['key'] + - test_five['circuit']['install_date'] == "2018-12-25" + - test_five['circuit']['commit_rate'] == 10000 + - test_five['circuit']['description'] == "Test circuit with updates" + - test_five['circuit']['comments'] == "FASTER CIRCUIT" + - test_five['msg'] == "circuit Test Circuit One deleted" From 1a673bb4367e1fbc16a5d059882b33823cf1fdd3 Mon Sep 17 00:00:00 2001 From: Sven Date: Mon, 15 Apr 2024 18:19:55 +0200 Subject: [PATCH 28/36] Apply suggestions from code review Co-authored-by: Joe Wesch <10467633+joewesch@users.noreply.github.com> --- .../targets/latest/tasks/circuit.yml | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/integration/targets/latest/tasks/circuit.yml b/tests/integration/targets/latest/tasks/circuit.yml index 1d40464d..d80a9c33 100644 --- a/tests/integration/targets/latest/tasks/circuit.yml +++ b/tests/integration/targets/latest/tasks/circuit.yml @@ -138,7 +138,7 @@ state: present register: test_four -- name: "PYNAUTOBOT_CIRCUIT 3.1: ASSERT - Update circuit without status" +- name: "PYNAUTOBOT_CIRCUIT 4: ASSERT - Update circuit with custom_field" assert: that: - test_four is changed @@ -155,6 +155,29 @@ - test_four['circuit']['comments'] == "FASTER CIRCUIT" - test_four['msg'] == "circuit Test Circuit One updated" +- name: "PYNAUTOBOT_CIRCUIT 4.1: Verify circuit with custom_field idempotency" + networktocode.nautobot.circuit: + url: "{{ nautobot_url }}" + token: "{{ nautobot_token }}" + cid: Test Circuit One + provider: Test Provider + circuit_type: Test Circuit Type + tenant: Test Tenant + install_date: "2018-12-25" + commit_rate: 10000 + custom_fields: + my_text_custom_field: test + description: "Test circuit with updates" + comments: "FASTER CIRCUIT" + state: present + register: test_four + +- name: "PYNAUTOBOT_CIRCUIT 5: ASSERT - Verify custom_field idempotency" + assert: + that: + - not test_four['changed'] + - test_four['circuit']['custom_fields']['my_text_custom_field'] == "test" + - name: "PYNAUTOBOT_CIRCUIT 5: Delete provider within nautobot" networktocode.nautobot.circuit: url: "{{ nautobot_url }}" From ac4ce381de7f9e3fc99e45253f8e8a5ffde88d03 Mon Sep 17 00:00:00 2001 From: Sven Date: Tue, 16 Apr 2024 11:01:14 +0000 Subject: [PATCH 29/36] added retries for lookup --- plugins/lookup/lookup.py | 9 ++++++++- plugins/lookup/lookup_graphql.py | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/lookup/lookup.py b/plugins/lookup/lookup.py index 7391150e..ab9ec25f 100644 --- a/plugins/lookup/lookup.py +++ b/plugins/lookup/lookup.py @@ -58,6 +58,12 @@ - Whether or not to validate SSL of the Nautobot instance required: False default: True + num_retries: + description: + - Number of retries + - This will only affect HTTP codes 429, 500, 502, 503, and 504. + required: False + default: 3 raw_data: description: - Whether to return raw API data with the lookup/query or whether to return a key/value dict @@ -312,6 +318,7 @@ def run(self, terms, variables=None, **kwargs): api_token = kwargs.get("token") or os.getenv("NAUTOBOT_TOKEN") api_endpoint = kwargs.get("api_endpoint") or os.getenv("NAUTOBOT_URL") + num_retries = kwargs.get("num_retries", "3") ssl_verify = kwargs.get("validate_certs", True) api_filter = kwargs.get("api_filter") raw_return = kwargs.get("raw_data") @@ -321,7 +328,7 @@ def run(self, terms, variables=None, **kwargs): if not isinstance(terms, list): terms = [terms] - nautobot = pynautobot.api(api_endpoint, token=api_token if api_token else None, api_version=api_version, verify=ssl_verify) + nautobot = pynautobot.api(api_endpoint, token=api_token if api_token else None, api_version=api_version, verify=ssl_verify, retries=num_retries) results = [] for term in terms: diff --git a/plugins/lookup/lookup_graphql.py b/plugins/lookup/lookup_graphql.py index 6e785562..785e55f7 100644 --- a/plugins/lookup/lookup_graphql.py +++ b/plugins/lookup/lookup_graphql.py @@ -45,6 +45,12 @@ - Whether or not to validate SSL of the Nautobot instance required: False default: True + num_retries: + description: + - Number of retries + - This will only affect HTTP codes 429, 500, 502, 503, and 504. + required: False + default: 3 graph_variables: description: - Dictionary of keys/values to pass into the GraphQL query From 61ada5574ceba5bac6ee53b7fd6d01d7bab87c89 Mon Sep 17 00:00:00 2001 From: Sven Date: Tue, 16 Apr 2024 13:25:44 +0000 Subject: [PATCH 30/36] revert: remove docs --- plugins/lookup/lookup_graphql.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/plugins/lookup/lookup_graphql.py b/plugins/lookup/lookup_graphql.py index 785e55f7..6e785562 100644 --- a/plugins/lookup/lookup_graphql.py +++ b/plugins/lookup/lookup_graphql.py @@ -45,12 +45,6 @@ - Whether or not to validate SSL of the Nautobot instance required: False default: True - num_retries: - description: - - Number of retries - - This will only affect HTTP codes 429, 500, 502, 503, and 504. - required: False - default: 3 graph_variables: description: - Dictionary of keys/values to pass into the GraphQL query From 39922785a39b9f0434bc91be4b62fec7a34008b6 Mon Sep 17 00:00:00 2001 From: Sven Date: Wed, 24 Apr 2024 18:16:52 +0000 Subject: [PATCH 31/36] set default to 0 retries --- plugins/lookup/lookup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/lookup/lookup.py b/plugins/lookup/lookup.py index ab9ec25f..b62a5ac8 100644 --- a/plugins/lookup/lookup.py +++ b/plugins/lookup/lookup.py @@ -63,7 +63,7 @@ - Number of retries - This will only affect HTTP codes 429, 500, 502, 503, and 504. required: False - default: 3 + default: 0 raw_data: description: - Whether to return raw API data with the lookup/query or whether to return a key/value dict @@ -318,7 +318,7 @@ def run(self, terms, variables=None, **kwargs): api_token = kwargs.get("token") or os.getenv("NAUTOBOT_TOKEN") api_endpoint = kwargs.get("api_endpoint") or os.getenv("NAUTOBOT_URL") - num_retries = kwargs.get("num_retries", "3") + num_retries = kwargs.get("num_retries", "0") ssl_verify = kwargs.get("validate_certs", True) api_filter = kwargs.get("api_filter") raw_return = kwargs.get("raw_data") From bd95748d6c4fe312fc13d436d2443ef63b88c106 Mon Sep 17 00:00:00 2001 From: Sven Date: Wed, 24 Apr 2024 18:17:18 +0000 Subject: [PATCH 32/36] test with num_retries set --- tests/integration/targets/latest/tasks/lookup.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/integration/targets/latest/tasks/lookup.yml b/tests/integration/targets/latest/tasks/lookup.yml index 5fa9a5a4..a5ae935e 100644 --- a/tests/integration/targets/latest/tasks/lookup.yml +++ b/tests/integration/targets/latest/tasks/lookup.yml @@ -79,3 +79,9 @@ - "'L2' in query_result | json_query('[*].display')" vars: query_result: "{{ query('networktocode.nautobot.lookup', 'devices', api_filter='role=\"Core Switch\" location=\"Child Test Location\" location=\"Child-Child Test Location\"', api_endpoint=nautobot_url, token=nautobot_token, raw_data=True) }}" + +- name: "PYNAUTOBOT_LOOKUP 10: Lookup with retries set" + assert: + that: "query_result | count == 6" + vars: + query_result: "{{ query('networktocode.nautobot.lookup', 'locations', api_endpoint=nautobot_url, token=nautobot_token, num_retries=3) }}" \ No newline at end of file From 2a79fbc952fe819b6b976d66cb64298c256fc8ba Mon Sep 17 00:00:00 2001 From: Sven Date: Thu, 25 Apr 2024 07:26:26 +0000 Subject: [PATCH 33/36] allow to set labels and description for device_interface_templates --- plugins/modules/device_interface_template.py | 14 ++++++++++++++ .../latest/tasks/device_interface_template.yml | 10 ++++++++++ 2 files changed, 24 insertions(+) diff --git a/plugins/modules/device_interface_template.py b/plugins/modules/device_interface_template.py index 0fbc87c2..d04a3d15 100644 --- a/plugins/modules/device_interface_template.py +++ b/plugins/modules/device_interface_template.py @@ -50,6 +50,18 @@ required: false type: bool version_added: "3.0.0" + label: + description: + - Label of the interface template to be created + required: false + type: str + version_added: "5.2.0" + description: + description: + - Description of the interface + required: false + type: str + version_added: "5.2.0" """ EXAMPLES = r""" @@ -110,6 +122,8 @@ def main(): type="str", ), mgmt_only=dict(required=False, type="bool"), + label=dict(required=False, type="str"), + description=dict(required=False, type="str"), ) ) diff --git a/tests/integration/targets/latest/tasks/device_interface_template.yml b/tests/integration/targets/latest/tasks/device_interface_template.yml index 73feb788..a2dc2a78 100644 --- a/tests/integration/targets/latest/tasks/device_interface_template.yml +++ b/tests/integration/targets/latest/tasks/device_interface_template.yml @@ -14,6 +14,8 @@ device_type: Arista Test name: 10GBASE-T (10GE) type: 10gbase-t + label: net1 + description: "create interface" register: test_one - name: "1 - ASSERT" @@ -26,6 +28,8 @@ - test_one['interface_template']['name'] == "10GBASE-T (10GE)" - test_one['interface_template']['device_type'] == dt_arista['key'] - test_one['interface_template']['type'] == '10gbase-t' + - test_one['interface_template']['label'] == 'net1' + - test_one['interface_template']['description'] == 'create interface' - name: "2 - Update 10GBASE-T (10GE)" networktocode.nautobot.device_interface_template: @@ -34,6 +38,8 @@ device_type: Arista Test name: 10GBASE-T (10GE) type: 10gbase-t + label: net0 + description: "update interface" mgmt_only: true register: test_two @@ -43,9 +49,13 @@ - test_two is changed - test_two['msg'] == "interface_template 10GBASE-T (10GE) updated" - test_two['diff']['after']['mgmt_only'] == true + - test_two['diff']['after']['label'] == "net0" + - test_two['diff']['after']['description'] == "update interface" - test_two['interface_template']['name'] == "10GBASE-T (10GE)" - test_two['interface_template']['device_type'] == dt_arista['key'] - test_two['interface_template']['mgmt_only'] == true + - test_two['interface_template']['label'] == "net0" + - test_two['interface_template']['description'] == "update interface" - name: "3 - Delete interface template 10GBASE-T (10GE)" networktocode.nautobot.device_interface_template: From 340116fc8d65128f14c4bb71c1939b5729bc7972 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Thu, 25 Apr 2024 08:58:10 -0500 Subject: [PATCH 34/36] Release v5.2.0 --- CHANGELOG.rst | 14 + changelogs/changelog.yaml | 11 + docs/plugins/cable_module.rst | 2 +- docs/plugins/circuit_module.rst | 2 +- docs/plugins/circuit_termination_module.rst | 2 +- docs/plugins/circuit_type_module.rst | 2 +- docs/plugins/cluster_group_module.rst | 2 +- docs/plugins/cluster_module.rst | 2 +- docs/plugins/cluster_type_module.rst | 2 +- docs/plugins/console_port_module.rst | 2 +- docs/plugins/console_port_template_module.rst | 2 +- docs/plugins/console_server_port_module.rst | 2 +- .../console_server_port_template_module.rst | 2 +- docs/plugins/custom_field_choice_module.rst | 2 +- docs/plugins/custom_field_module.rst | 2 +- docs/plugins/device_bay_module.rst | 2 +- docs/plugins/device_bay_template_module.rst | 2 +- docs/plugins/device_interface_module.rst | 2 +- .../device_interface_template_module.rst | 76 +- docs/plugins/device_module.rst | 2 +- .../device_redundancy_group_module.rst | 2 +- docs/plugins/device_type_module.rst | 2 +- docs/plugins/environment_variables.rst | 36 + docs/plugins/front_port_module.rst | 2 +- docs/plugins/front_port_template_module.rst | 2 +- docs/plugins/gql_inventory_inventory.rst | 943 ++++++++++++++- docs/plugins/graphql_string_filter.rst | 27 + docs/plugins/index.rst | 2 +- docs/plugins/inventory_inventory.rst | 2 +- docs/plugins/inventory_item_module.rst | 39 +- docs/plugins/ip_address_module.rst | 2 +- .../ip_address_to_interface_module.rst | 2 +- docs/plugins/location_module.rst | 10 +- docs/plugins/location_type_module.rst | 12 +- docs/plugins/lookup_graphql_lookup.rst | 2 +- docs/plugins/lookup_lookup.rst | 45 +- docs/plugins/manufacturer_module.rst | 2 +- docs/plugins/namespace_module.rst | 2 +- docs/plugins/nautobot_server_module.rst | 2 +- docs/plugins/platform_module.rst | 2 +- docs/plugins/plugin_module.rst | 2 +- docs/plugins/power_feed_module.rst | 2 +- docs/plugins/power_outlet_module.rst | 2 +- docs/plugins/power_outlet_template_module.rst | 2 +- docs/plugins/power_panel_module.rst | 2 +- docs/plugins/power_port_module.rst | 2 +- docs/plugins/power_port_template_module.rst | 2 +- docs/plugins/prefix_module.rst | 2 +- docs/plugins/provider_module.rst | 2 +- docs/plugins/query_graphql_module.rst | 2 +- docs/plugins/rack_group_module.rst | 8 +- docs/plugins/rack_module.rst | 2 +- docs/plugins/rear_port_module.rst | 2 +- docs/plugins/rear_port_template_module.rst | 2 +- .../relationship_association_module.rst | 2 +- docs/plugins/rir_module.rst | 2 +- docs/plugins/role_module.rst | 39 +- docs/plugins/route_target_module.rst | 2 +- docs/plugins/service_module.rst | 2 +- docs/plugins/status_module.rst | 2 +- docs/plugins/tag_module.rst | 39 +- docs/plugins/tenant_group_module.rst | 10 +- docs/plugins/tenant_module.rst | 2 +- docs/plugins/virtual_chassis_module.rst | 2 +- docs/plugins/virtual_machine_module.rst | 2 +- docs/plugins/vlan_group_module.rst | 39 +- docs/plugins/vlan_module.rst | 2 +- docs/plugins/vm_interface_module.rst | 2 +- docs/plugins/vrf_module.rst | 2 +- galaxy.yml | 2 +- poetry.lock | 1038 +++++++++-------- pyproject.toml | 2 +- tasks.py | 7 + 73 files changed, 1894 insertions(+), 611 deletions(-) create mode 100644 docs/plugins/environment_variables.rst create mode 100644 docs/plugins/graphql_string_filter.rst diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 92985080..7b5d20e6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,20 @@ networktocode.nautobot Release Notes .. contents:: Topics +v5.2.0 +====== + +Minor Changes +------------- +- (#310) Fixed `parent` for location_type to convert to UUID for idempotency +- (#319) Added `custom_fields` to `tag`, `vlan_group` and `role` modules +- (#321) Updated documentation and examples for the `lookup` plugin +- (#323) Added constructed features and inventory cache to the `gql_inventory` plugin +- (#335) Fixed custom field idempotency for various modules +- (#336) Added `custom_fields` to the `inventory_item` module +- (#338) Added `num_retries` to the `lookup` plugin +- (#340) Added `label` and `description` to the `device_interface_template` module + v5.1.1 ====== diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index 945c691f..31dbd225 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -433,3 +433,14 @@ releases: - (#298) Removes `status` option from being required unless creating a new object for various modules - (#299) Added example for using the `depth` option in the `lookup` module - (#304) Fixed the ability to look up `parent_location` by name instead of UUID in the `location` module + 5.2.0: + changes: + minor_changes: + - (#310) Fixed `parent` for location_type to convert to UUID for idempotency + - (#319) Added `custom_fields` to `tag`, `vlan_group` and `role` modules + - (#321) Updated documentation and examples for the `lookup` plugin + - (#323) Added constructed features and inventory cache to the `gql_inventory` plugin + - (#335) Fixed custom field idempotency for various modules + - (#336) Added `custom_fields` to the `inventory_item` module + - (#338) Added `num_retries` to the `lookup` plugin + - (#340) Added `label` and `description` to the `device_interface_template` module diff --git a/docs/plugins/cable_module.rst b/docs/plugins/cable_module.rst index ab8bc6f3..09da8bd1 100755 --- a/docs/plugins/cable_module.rst +++ b/docs/plugins/cable_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cable module -- Create, update or delete cables within Na .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/circuit_module.rst b/docs/plugins/circuit_module.rst index fc257e06..90f581ac 100755 --- a/docs/plugins/circuit_module.rst +++ b/docs/plugins/circuit_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.circuit module -- Create, update or delete circuits withi .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/circuit_termination_module.rst b/docs/plugins/circuit_termination_module.rst index bdd8dd71..40da9b4c 100755 --- a/docs/plugins/circuit_termination_module.rst +++ b/docs/plugins/circuit_termination_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.circuit_termination module -- Create, update or delete ci .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/circuit_type_module.rst b/docs/plugins/circuit_type_module.rst index 0841ebd9..3e5c54e2 100755 --- a/docs/plugins/circuit_type_module.rst +++ b/docs/plugins/circuit_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.circuit_type module -- Create, update or delete circuit t .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/cluster_group_module.rst b/docs/plugins/cluster_group_module.rst index 2978ef15..3906c15a 100755 --- a/docs/plugins/cluster_group_module.rst +++ b/docs/plugins/cluster_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cluster_group module -- Create, update or delete cluster .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/cluster_module.rst b/docs/plugins/cluster_module.rst index 33869e1e..bcb846bb 100755 --- a/docs/plugins/cluster_module.rst +++ b/docs/plugins/cluster_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cluster module -- Create, update or delete clusters withi .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/cluster_type_module.rst b/docs/plugins/cluster_type_module.rst index 25146f1c..d3550e28 100755 --- a/docs/plugins/cluster_type_module.rst +++ b/docs/plugins/cluster_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.cluster_type module -- Create, update or delete cluster t .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_port_module.rst b/docs/plugins/console_port_module.rst index 76cec5b6..da86ddd0 100755 --- a/docs/plugins/console_port_module.rst +++ b/docs/plugins/console_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_port module -- Create, update or delete console p .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_port_template_module.rst b/docs/plugins/console_port_template_module.rst index 2fdfebc9..cad5dc86 100755 --- a/docs/plugins/console_port_template_module.rst +++ b/docs/plugins/console_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_port_template module -- Create, update or delete .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_server_port_module.rst b/docs/plugins/console_server_port_module.rst index 3ceb5893..126fc215 100755 --- a/docs/plugins/console_server_port_module.rst +++ b/docs/plugins/console_server_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_server_port module -- Create, update or delete co .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/console_server_port_template_module.rst b/docs/plugins/console_server_port_template_module.rst index cb7b13f3..0c3f6987 100755 --- a/docs/plugins/console_server_port_template_module.rst +++ b/docs/plugins/console_server_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.console_server_port_template module -- Create, update or .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/custom_field_choice_module.rst b/docs/plugins/custom_field_choice_module.rst index 7014a3de..d6243570 100755 --- a/docs/plugins/custom_field_choice_module.rst +++ b/docs/plugins/custom_field_choice_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.custom_field_choice module -- Creates or removes custom f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/custom_field_module.rst b/docs/plugins/custom_field_module.rst index 56a3f966..d80ac689 100755 --- a/docs/plugins/custom_field_module.rst +++ b/docs/plugins/custom_field_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.custom_field module -- Creates or removes custom fields f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_bay_module.rst b/docs/plugins/device_bay_module.rst index 3ccf4343..81e7650f 100755 --- a/docs/plugins/device_bay_module.rst +++ b/docs/plugins/device_bay_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_bay module -- Create, update or delete device bays .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_bay_template_module.rst b/docs/plugins/device_bay_template_module.rst index 50a7cad0..e27c8bf3 100755 --- a/docs/plugins/device_bay_template_module.rst +++ b/docs/plugins/device_bay_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_bay_template module -- Create, update or delete de .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_interface_module.rst b/docs/plugins/device_interface_module.rst index dea968dc..d3da7e64 100755 --- a/docs/plugins/device_interface_module.rst +++ b/docs/plugins/device_interface_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_interface module -- Creates or removes interfaces .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_interface_template_module.rst b/docs/plugins/device_interface_template_module.rst index ba0f3ecd..8057b617 100755 --- a/docs/plugins/device_interface_template_module.rst +++ b/docs/plugins/device_interface_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_interface_template module -- Creates or removes in .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -137,6 +137,43 @@ Parameters API Version Nautobot REST API + .. raw:: html + + + + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.device_interface_template_module__parameter-description: + + .. rst-class:: ansible-option-title + + **description** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + :ansible-option-versionadded:`added in networktocode.nautobot 5.2.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Description of the interface + + .. raw:: html
@@ -174,6 +211,43 @@ Parameters Name of the device the interface template will be associated with (case-sensitive) + .. raw:: html + + + + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.device_interface_template_module__parameter-label: + + .. rst-class:: ansible-option-title + + **label** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + :ansible-option-versionadded:`added in networktocode.nautobot 5.2.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Label of the interface template to be created + + .. raw:: html
diff --git a/docs/plugins/device_module.rst b/docs/plugins/device_module.rst index 0249d351..10f99d4e 100755 --- a/docs/plugins/device_module.rst +++ b/docs/plugins/device_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device module -- Create, update or delete devices within .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_redundancy_group_module.rst b/docs/plugins/device_redundancy_group_module.rst index e80f304a..5e06e1f6 100755 --- a/docs/plugins/device_redundancy_group_module.rst +++ b/docs/plugins/device_redundancy_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_redundancy_group module -- Creates or removes devi .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/device_type_module.rst b/docs/plugins/device_type_module.rst index db8c233d..2dac413a 100755 --- a/docs/plugins/device_type_module.rst +++ b/docs/plugins/device_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.device_type module -- Create, update or delete device typ .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/environment_variables.rst b/docs/plugins/environment_variables.rst new file mode 100644 index 00000000..c2e7a6e0 --- /dev/null +++ b/docs/plugins/environment_variables.rst @@ -0,0 +1,36 @@ + +:orphan: + +.. _list_of_collection_env_vars: + +Index of all Collection Environment Variables +============================================= + +The following index documents all environment variables declared by plugins in collections. +Environment variables used by the ansible-core configuration are documented in :ref:`ansible_configuration_settings`. + +.. envvar:: ANSIBLE_INVENTORY_USE_EXTRA_VARS + + Merge extra vars into the available variables for composition (highest precedence). + + *Used by:* + :ref:`networktocode.nautobot.gql\_inventory inventory plugin `, + :ref:`networktocode.nautobot.inventory inventory plugin ` +.. envvar:: NAUTOBOT_TOKEN + + See the documentations for the options where this environment variable is used. + + *Used by:* + :ref:`networktocode.nautobot.gql\_inventory inventory plugin `, + :ref:`networktocode.nautobot.inventory inventory plugin `, + :ref:`networktocode.nautobot.lookup lookup plugin `, + :ref:`networktocode.nautobot.lookup\_graphql lookup plugin ` +.. envvar:: NAUTOBOT_URL + + See the documentations for the options where this environment variable is used. + + *Used by:* + :ref:`networktocode.nautobot.gql\_inventory inventory plugin `, + :ref:`networktocode.nautobot.inventory inventory plugin `, + :ref:`networktocode.nautobot.lookup lookup plugin `, + :ref:`networktocode.nautobot.lookup\_graphql lookup plugin ` diff --git a/docs/plugins/front_port_module.rst b/docs/plugins/front_port_module.rst index 8e71c28b..7750277f 100755 --- a/docs/plugins/front_port_module.rst +++ b/docs/plugins/front_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.front_port module -- Create, update or delete front ports .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/front_port_template_module.rst b/docs/plugins/front_port_template_module.rst index b0895d0b..7bcaf0ed 100755 --- a/docs/plugins/front_port_template_module.rst +++ b/docs/plugins/front_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.front_port_template module -- Create, update or delete fr .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/gql_inventory_inventory.rst b/docs/plugins/gql_inventory_inventory.rst index cd7cf458..c0382946 100755 --- a/docs/plugins/gql_inventory_inventory.rst +++ b/docs/plugins/gql_inventory_inventory.rst @@ -42,7 +42,7 @@ networktocode.nautobot.gql_inventory inventory -- Nautobot inventory source usin .. Collection note .. note:: - This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this inventory plugin, @@ -141,6 +141,378 @@ Parameters - Environment variable: :envvar:`NAUTOBOT\_URL` + .. raw:: html + + + + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache: + + .. rst-class:: ansible-option-title + + **cache** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Toggle to enable/disable the caching of the inventory's source data, requires a cache plugin setup to work. + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entry: + + .. code-block:: + + [inventory] + cache = false + + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_connection: + + .. rst-class:: ansible-option-title + + **cache_connection** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Cache connection data or path, read cache plugin documentation for specifics. + + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [defaults] + fact_caching_connection = VALUE + + + + .. code-block:: + + [inventory] + cache_connection = VALUE + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN\_CONNECTION` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_CONNECTION` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_plugin: + + .. rst-class:: ansible-option-title + + **cache_plugin** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Cache plugin to use for the inventory's source data. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`"memory"` + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [defaults] + fact_caching = memory + + + + .. code-block:: + + [inventory] + cache_plugin = memory + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_PLUGIN` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_prefix: + + .. rst-class:: ansible-option-title + + **cache_prefix** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Prefix to use for cache plugin files/tables + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`"ansible\_inventory\_"` + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [default] + fact_caching_prefix = ansible_inventory_ + + + Removed in: version 2.16 of ansible.builtin + + + Why: Fixes typing error in INI section name + + Alternative: Use the 'defaults' section instead + + + + .. code-block:: + + [defaults] + fact_caching_prefix = ansible_inventory_ + + + + .. code-block:: + + [inventory] + cache_prefix = ansible_inventory_ + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN\_PREFIX` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_PLUGIN\_PREFIX` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-cache_timeout: + + .. rst-class:: ansible-option-title + + **cache_timeout** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`integer` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Cache duration in seconds + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`3600` + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entries: + + .. code-block:: + + [defaults] + fact_caching_timeout = 3600 + + + + .. code-block:: + + [inventory] + cache_timeout = 3600 + + + - Environment variable: :envvar:`ANSIBLE\_CACHE\_PLUGIN\_TIMEOUT` + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_CACHE\_TIMEOUT` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-compose: + + .. rst-class:: ansible-option-title + + **compose** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Create vars from jinja2 expressions. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`{}` + .. raw:: html
@@ -150,15 +522,285 @@ Parameters
- .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-follow_redirects: + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-follow_redirects: + + .. rst-class:: ansible-option-title + + **follow_redirects** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Determine how redirects are followed. + + By default, \ :emphasis:`follow\_redirects`\ is set to uses urllib2 default behavior. + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`"urllib2"` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`"all"` + - :ansible-option-choices-entry:`"yes"` + - :ansible-option-choices-entry:`"safe"` + - :ansible-option-choices-entry:`"none"` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_by: + + .. rst-class:: ansible-option-title + + **group_by** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`list` / :ansible-option-elements:`elements=string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + List of dot-sparated paths to index graphql query results (e.g. \`platform.display\`) + + The final value returned by each path is used to derive group names and then group the devices into these groups. + + Valid group names must be string, so indexing the dotted path should return a string (i.e. \`platform.display\` instead of \`platform\`) + + If value returned by the defined path is a dictionary, an attempt will first be made to access the \`name\` field, and then the \`display\` field. (i.e. \`platform\` would attempt to lookup \`platform.name\`, and if that data was not returned, it would then try \`platform.display\`) + + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`[]` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_names_raw: + + .. rst-class:: ansible-option-title + + **group_names_raw** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + :ansible-option-versionadded:`added in networktocode.nautobot 4.6.0` + + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Will not add the group\_by choice name to the group names + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-groups: + + .. rst-class:: ansible-option-title + + **groups** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Add hosts to group based on Jinja2 conditionals. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`{}` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups: + + .. rst-class:: ansible-option-title + + **keyed_groups** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`list` / :ansible-option-elements:`elements=dictionary` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Add hosts to group based on the values of a variable. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`[]` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/default_value: + + .. rst-class:: ansible-option-title + + **default_value** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + :ansible-option-versionadded:`added in ansible-core 2.12` + + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + The default value when the host variable's value is an empty string. + + This option is mutually exclusive with \ :literal:`trailing\_separator`\ . + + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/key: .. rst-class:: ansible-option-title - **follow_redirects** + **key** .. raw:: html - + .. rst-class:: ansible-option-type-line @@ -173,22 +815,46 @@ Parameters - .. raw:: html -
+
- Determine how redirects are followed. + The key from input dictionary used to generate groups - By default, \ :emphasis:`follow\_redirects`\ is set to uses urllib2 default behavior. + .. raw:: html - .. rst-class:: ansible-option-line +
- :ansible-option-choices:`Choices:` + * - .. raw:: html - - :ansible-option-choices-entry-default:`"urllib2"` :ansible-option-choices-default-mark:`← (default)` - - :ansible-option-choices-entry:`"all"` - - :ansible-option-choices-entry:`"yes"` - - :ansible-option-choices-entry:`"safe"` - - :ansible-option-choices-entry:`"none"` +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/parent_group: + + .. rst-class:: ansible-option-title + + **parent_group** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + parent group for keyed group .. raw:: html @@ -197,22 +863,22 @@ Parameters * - .. raw:: html -
-
+
+
- .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_by: + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/prefix: .. rst-class:: ansible-option-title - **group_by** + **prefix** .. raw:: html - + .. rst-class:: ansible-option-type-line - :ansible-option-type:`list` / :ansible-option-elements:`elements=string` + :ansible-option-type:`string` @@ -223,46 +889,131 @@ Parameters - .. raw:: html -
+
- List of dot-sparated paths to index graphql query results (e.g. \`platform.display\`) + A keyed group name will start with this prefix - The final value returned by each path is used to derive group names and then group the devices into these groups. - Valid group names must be string, so indexing the dotted path should return a string (i.e. \`platform.display\` instead of \`platform\`) + .. rst-class:: ansible-option-line - If value returned by the defined path is a dictionary, an attempt will first be made to access the \`name\` field, and then the \`display\` field. (i.e. \`platform\` would attempt to lookup \`platform.name\`, and if that data was not returned, it would then try \`platform.display\`) - + :ansible-option-default-bold:`Default:` :ansible-option-default:`""` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/separator: + + .. rst-class:: ansible-option-title + + **separator** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + separator used to build the keyed group name .. rst-class:: ansible-option-line - :ansible-option-default-bold:`Default:` :ansible-option-default:`[]` + :ansible-option-default-bold:`Default:` :ansible-option-default:`"\_"` + + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-keyed_groups/trailing_separator: + + .. rst-class:: ansible-option-title + + **trailing_separator** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + :ansible-option-versionadded:`added in ansible-core 2.12` + + + + .. raw:: html
+ - .. raw:: html + +
+ + Set this option to \ :emphasis:`False`\ to omit the \ :literal:`separator`\ after the host variable when the value is an empty string. + + This option is mutually exclusive with \ :literal:`default\_value`\ . + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry:`false` + - :ansible-option-choices-entry-default:`true` :ansible-option-choices-default-mark:`← (default)` + + + .. raw:: html + +
+ + * - .. raw:: html
-
+
- .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-group_names_raw: + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-leading_separator: .. rst-class:: ansible-option-title - **group_names_raw** + **leading_separator** .. raw:: html - + .. rst-class:: ansible-option-type-line :ansible-option-type:`boolean` - :ansible-option-versionadded:`added in networktocode.nautobot 4.6.0` + :ansible-option-versionadded:`added in ansible-core 2.11` @@ -276,15 +1027,25 @@ Parameters
- Will not add the group\_by choice name to the group names + Use in conjunction with keyed\_groups. + + By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore. + + This is because the default prefix is "" and the default separator is "\_". + + Set this option to False to omit the leading underscore (or other separator) if no prefix is given. + + If the group name is derived from a mapping the separator is still used to concatenate the items. + + To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead. .. rst-class:: ansible-option-line :ansible-option-choices:`Choices:` - - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` - - :ansible-option-choices-entry:`true` + - :ansible-option-choices-entry:`false` + - :ansible-option-choices-entry-default:`true` :ansible-option-choices-default-mark:`← (default)` .. raw:: html @@ -451,6 +1212,53 @@ Parameters
+ * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-strict: + + .. rst-class:: ansible-option-title + + **strict** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + If \ :literal:`yes`\ make invalid entries a fatal error, otherwise skip and continue. + + Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. raw:: html + +
+ * - .. raw:: html
@@ -534,6 +1342,69 @@ Parameters - Environment variable: :envvar:`NAUTOBOT\_TOKEN` + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.gql_inventory_inventory__parameter-use_extra_vars: + + .. rst-class:: ansible-option-title + + **use_extra_vars** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`boolean` + + :ansible-option-versionadded:`added in ansible-core 2.11` + + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Merge extra vars into the available variables for composition (highest precedence). + + + .. rst-class:: ansible-option-line + + :ansible-option-choices:`Choices:` + + - :ansible-option-choices-entry-default:`false` :ansible-option-choices-default-mark:`← (default)` + - :ansible-option-choices-entry:`true` + + + .. rst-class:: ansible-option-line + + :ansible-option-configuration:`Configuration:` + + - INI entry: + + .. code-block:: + + [inventory_plugins] + use_extra_vars = false + + + - Environment variable: :envvar:`ANSIBLE\_INVENTORY\_USE\_EXTRA\_VARS` + + .. raw:: html
@@ -634,7 +1505,7 @@ Examples # } # This module will automatically add the ansible_host key and set it equal to primary_ip4.host - # as well as the ansible_network_os key and set it to platform.napalm_driver + # as well as the ansible_network_os key and set it to platform.napalm_driver via netutils mapping # if the primary_ip4.host and platform.napalm_driver are present on the device in Nautobot. # Add additional query parameters with the query key. diff --git a/docs/plugins/graphql_string_filter.rst b/docs/plugins/graphql_string_filter.rst new file mode 100644 index 00000000..8e7264a9 --- /dev/null +++ b/docs/plugins/graphql_string_filter.rst @@ -0,0 +1,27 @@ + +.. Document meta section + +:orphan: + +.. Document body + +.. Anchors + +.. _ansible_collections.networktocode.nautobot.graphql_string_filter: + +.. Title + +networktocode.nautobot.graphql_string filter +++++++++++++++++++++++++++++++++++++++++++++ + + +The documentation for the filter plugin, networktocode.nautobot.graphql_string, was malformed. + +The errors were: + +* :: + + Missing documentation or could not parse documentation: No documentation available for networktocode.nautobot.graphql_string (/root/.ansible/collections/ansible_collections/networktocode/nautobot/plugins/filter/graphql.py) + + +File a bug with the `networktocode.nautobot collection `_ in order to have it corrected. \ No newline at end of file diff --git a/docs/plugins/index.rst b/docs/plugins/index.rst index f0a34fe1..b1c905fa 100755 --- a/docs/plugins/index.rst +++ b/docs/plugins/index.rst @@ -6,7 +6,7 @@ Networktocode.Nautobot ====================== -Collection version 5.1.1 +Collection version 5.2.0 .. contents:: :local: diff --git a/docs/plugins/inventory_inventory.rst b/docs/plugins/inventory_inventory.rst index 87351c20..b7650602 100755 --- a/docs/plugins/inventory_inventory.rst +++ b/docs/plugins/inventory_inventory.rst @@ -42,7 +42,7 @@ networktocode.nautobot.inventory inventory -- Nautobot inventory source .. Collection note .. note:: - This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This inventory plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. diff --git a/docs/plugins/inventory_item_module.rst b/docs/plugins/inventory_item_module.rst index 8f8a7218..48bb7f1e 100755 --- a/docs/plugins/inventory_item_module.rst +++ b/docs/plugins/inventory_item_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.inventory_item module -- Creates or removes inventory ite .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -174,6 +174,43 @@ Parameters The asset tag of the inventory item + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.inventory_item_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/ip_address_module.rst b/docs/plugins/ip_address_module.rst index 2b7e9070..86984638 100755 --- a/docs/plugins/ip_address_module.rst +++ b/docs/plugins/ip_address_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.ip_address module -- Creates or removes IP addresses from .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/ip_address_to_interface_module.rst b/docs/plugins/ip_address_to_interface_module.rst index 9f9ad90d..b6895226 100755 --- a/docs/plugins/ip_address_to_interface_module.rst +++ b/docs/plugins/ip_address_to_interface_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.ip_address_to_interface module -- Creates or removes IP a .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/location_module.rst b/docs/plugins/location_module.rst index fb6578f3..01c01a1e 100755 --- a/docs/plugins/location_module.rst +++ b/docs/plugins/location_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.location module -- Creates or removes locations from Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -620,7 +620,9 @@ Parameters
+
+ .. _ansible_collections.networktocode.nautobot.location_module__parameter-parent: .. _ansible_collections.networktocode.nautobot.location_module__parameter-parent_location: .. rst-class:: ansible-option-title @@ -633,6 +635,10 @@ Parameters .. rst-class:: ansible-option-type-line + :ansible-option-aliases:`aliases: parent` + + .. rst-class:: ansible-option-type-line + :ansible-option-type:`any` .. raw:: html @@ -1129,7 +1135,7 @@ Examples contact_phone: 867-5309 contact_email: jenny@example.com comments: "**This** is a `markdown` comment" - parent_location: My Location + parent: My Location state: present diff --git a/docs/plugins/location_type_module.rst b/docs/plugins/location_type_module.rst index ef199b8e..76d95b9f 100755 --- a/docs/plugins/location_type_module.rst +++ b/docs/plugins/location_type_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.location_type module -- Creates or removes location types .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -329,17 +329,23 @@ Parameters * - .. raw:: html
+
.. _ansible_collections.networktocode.nautobot.location_type_module__parameter-parent: + .. _ansible_collections.networktocode.nautobot.location_type_module__parameter-parent_location_type: .. rst-class:: ansible-option-title - **parent** + **parent_location_type** .. raw:: html - + + + .. rst-class:: ansible-option-type-line + + :ansible-option-aliases:`aliases: parent` .. rst-class:: ansible-option-type-line diff --git a/docs/plugins/lookup_graphql_lookup.rst b/docs/plugins/lookup_graphql_lookup.rst index f58129fa..498d9fd8 100755 --- a/docs/plugins/lookup_graphql_lookup.rst +++ b/docs/plugins/lookup_graphql_lookup.rst @@ -42,7 +42,7 @@ networktocode.nautobot.lookup_graphql lookup -- Queries and returns elements fro .. Collection note .. note:: - This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this lookup plugin, diff --git a/docs/plugins/lookup_lookup.rst b/docs/plugins/lookup_lookup.rst index 6f813ad4..5f00bdc7 100755 --- a/docs/plugins/lookup_lookup.rst +++ b/docs/plugins/lookup_lookup.rst @@ -42,7 +42,7 @@ networktocode.nautobot.lookup lookup -- Queries and returns elements from Nautob .. Collection note .. note:: - This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This lookup plugin is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this lookup plugin, @@ -278,6 +278,49 @@ examples: ``lookup('networktocode.nautobot.lookup', key1=value1, key2=value2, .. The Nautobot Rest API version to use. + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.lookup_lookup__parameter-num_retries: + + .. rst-class:: ansible-option-title + + **num_retries** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`string` + + + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Number of retries + + This will only affect HTTP codes 429, 500, 502, 503, and 504. + + + .. rst-class:: ansible-option-line + + :ansible-option-default-bold:`Default:` :ansible-option-default:`0` + .. raw:: html
diff --git a/docs/plugins/manufacturer_module.rst b/docs/plugins/manufacturer_module.rst index 4e5aef26..65e99a9d 100755 --- a/docs/plugins/manufacturer_module.rst +++ b/docs/plugins/manufacturer_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.manufacturer module -- Create or delete manufacturers wit .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/namespace_module.rst b/docs/plugins/namespace_module.rst index 640ced23..d0ffb7f2 100755 --- a/docs/plugins/namespace_module.rst +++ b/docs/plugins/namespace_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.namespace module -- Creates or removes namespaces from Na .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/nautobot_server_module.rst b/docs/plugins/nautobot_server_module.rst index 1c3c272e..f5dd742c 100755 --- a/docs/plugins/nautobot_server_module.rst +++ b/docs/plugins/nautobot_server_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.nautobot_server module -- Manages Nautobot Server applica .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/platform_module.rst b/docs/plugins/platform_module.rst index 4215267a..de0c696f 100755 --- a/docs/plugins/platform_module.rst +++ b/docs/plugins/platform_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.platform module -- Create or delete platforms within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/plugin_module.rst b/docs/plugins/plugin_module.rst index fe77e4bd..efb80381 100755 --- a/docs/plugins/plugin_module.rst +++ b/docs/plugins/plugin_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.plugin module -- CRUD operation on plugin objects .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_feed_module.rst b/docs/plugins/power_feed_module.rst index 46b35971..2aca4542 100755 --- a/docs/plugins/power_feed_module.rst +++ b/docs/plugins/power_feed_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_feed module -- Create, update or delete power feeds .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_outlet_module.rst b/docs/plugins/power_outlet_module.rst index 79ed8f9c..8568d1dd 100755 --- a/docs/plugins/power_outlet_module.rst +++ b/docs/plugins/power_outlet_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_outlet module -- Create, update or delete power out .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_outlet_template_module.rst b/docs/plugins/power_outlet_template_module.rst index 4f670600..cc2229a9 100755 --- a/docs/plugins/power_outlet_template_module.rst +++ b/docs/plugins/power_outlet_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_outlet_template module -- Create, update or delete .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_panel_module.rst b/docs/plugins/power_panel_module.rst index ad825b71..9f5199b1 100755 --- a/docs/plugins/power_panel_module.rst +++ b/docs/plugins/power_panel_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_panel module -- Create, update or delete power pane .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_port_module.rst b/docs/plugins/power_port_module.rst index 9d5bf2e7..6d981108 100755 --- a/docs/plugins/power_port_module.rst +++ b/docs/plugins/power_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_port module -- Create, update or delete power ports .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/power_port_template_module.rst b/docs/plugins/power_port_template_module.rst index bb73a6ea..0b283979 100755 --- a/docs/plugins/power_port_template_module.rst +++ b/docs/plugins/power_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.power_port_template module -- Create, update or delete po .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/prefix_module.rst b/docs/plugins/prefix_module.rst index 90b3d9e8..61aa9fbb 100755 --- a/docs/plugins/prefix_module.rst +++ b/docs/plugins/prefix_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.prefix module -- Creates or removes prefixes from Nautobo .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/provider_module.rst b/docs/plugins/provider_module.rst index 6c3c04c6..3474cda4 100755 --- a/docs/plugins/provider_module.rst +++ b/docs/plugins/provider_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.provider module -- Create, update or delete providers wit .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/query_graphql_module.rst b/docs/plugins/query_graphql_module.rst index 9b6af573..a3f14f3c 100755 --- a/docs/plugins/query_graphql_module.rst +++ b/docs/plugins/query_graphql_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.query_graphql module -- Queries and returns elements from .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rack_group_module.rst b/docs/plugins/rack_group_module.rst index 3ed44e04..a2a1dd66 100755 --- a/docs/plugins/rack_group_module.rst +++ b/docs/plugins/rack_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rack_group module -- Create, update or delete racks group .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -256,7 +256,9 @@ Parameters
+
+ .. _ansible_collections.networktocode.nautobot.rack_group_module__parameter-parent: .. _ansible_collections.networktocode.nautobot.rack_group_module__parameter-parent_rack_group: .. rst-class:: ansible-option-title @@ -269,6 +271,10 @@ Parameters .. rst-class:: ansible-option-type-line + :ansible-option-aliases:`aliases: parent` + + .. rst-class:: ansible-option-type-line + :ansible-option-type:`any` :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` diff --git a/docs/plugins/rack_module.rst b/docs/plugins/rack_module.rst index b257bb24..2fc8fa0a 100755 --- a/docs/plugins/rack_module.rst +++ b/docs/plugins/rack_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rack module -- Create, update or delete racks within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rear_port_module.rst b/docs/plugins/rear_port_module.rst index f40ff4f1..f979d3a4 100755 --- a/docs/plugins/rear_port_module.rst +++ b/docs/plugins/rear_port_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rear_port module -- Create, update or delete rear ports w .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rear_port_template_module.rst b/docs/plugins/rear_port_template_module.rst index c3cbc746..a05066e4 100755 --- a/docs/plugins/rear_port_template_module.rst +++ b/docs/plugins/rear_port_template_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rear_port_template module -- Create, update or delete rea .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/relationship_association_module.rst b/docs/plugins/relationship_association_module.rst index a5d0e565..fef922c5 100755 --- a/docs/plugins/relationship_association_module.rst +++ b/docs/plugins/relationship_association_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.relationship_association module -- Creates or removes a r .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/rir_module.rst b/docs/plugins/rir_module.rst index 40f3793a..9cb79a87 100755 --- a/docs/plugins/rir_module.rst +++ b/docs/plugins/rir_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.rir module -- Create, update or delete RIRs within Nautob .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/role_module.rst b/docs/plugins/role_module.rst index 8ab51f3a..003c4d38 100755 --- a/docs/plugins/role_module.rst +++ b/docs/plugins/role_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.role module -- Create, update or delete roles within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -211,6 +211,43 @@ Parameters Model names which the role can be related to. + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.role_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/route_target_module.rst b/docs/plugins/route_target_module.rst index b8c9d265..b3275513 100755 --- a/docs/plugins/route_target_module.rst +++ b/docs/plugins/route_target_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.route_target module -- Creates or removes route targets f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/service_module.rst b/docs/plugins/service_module.rst index 3c58dfb5..44dfa1a4 100755 --- a/docs/plugins/service_module.rst +++ b/docs/plugins/service_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.service module -- Creates or removes service from Nautobo .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/status_module.rst b/docs/plugins/status_module.rst index c3c1871f..8833e935 100755 --- a/docs/plugins/status_module.rst +++ b/docs/plugins/status_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.status module -- Creates or removes status from Nautobot .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/tag_module.rst b/docs/plugins/tag_module.rst index 01d8346b..99a5bd38 100755 --- a/docs/plugins/tag_module.rst +++ b/docs/plugins/tag_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.tag module -- Creates or removes tags from Nautobot .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -212,6 +212,43 @@ Parameters Required if \ :emphasis:`state=present`\ and the tag does not exist yet + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.tag_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/tenant_group_module.rst b/docs/plugins/tenant_group_module.rst index 8bda040b..15f4c318 100755 --- a/docs/plugins/tenant_group_module.rst +++ b/docs/plugins/tenant_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.tenant_group module -- Creates or removes tenant groups f .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -219,7 +219,9 @@ Parameters
+
+ .. _ansible_collections.networktocode.nautobot.tenant_group_module__parameter-parent: .. _ansible_collections.networktocode.nautobot.tenant_group_module__parameter-parent_tenant_group: .. rst-class:: ansible-option-title @@ -232,6 +234,10 @@ Parameters .. rst-class:: ansible-option-type-line + :ansible-option-aliases:`aliases: parent` + + .. rst-class:: ansible-option-type-line + :ansible-option-type:`any` :ansible-option-versionadded:`added in networktocode.nautobot 3.1.0` @@ -489,7 +495,7 @@ Examples url: http://nautobot.local token: thisIsMyToken name: Tenant Group ABC - parent_tenant_group: Customer Tenants + parent: Customer Tenants state: present diff --git a/docs/plugins/tenant_module.rst b/docs/plugins/tenant_module.rst index 33eb62e1..ca600abb 100755 --- a/docs/plugins/tenant_module.rst +++ b/docs/plugins/tenant_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.tenant module -- Creates or removes tenants from Nautobot .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/virtual_chassis_module.rst b/docs/plugins/virtual_chassis_module.rst index 447a51a2..99c76e2b 100755 --- a/docs/plugins/virtual_chassis_module.rst +++ b/docs/plugins/virtual_chassis_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.virtual_chassis module -- Create, update or delete virtua .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/virtual_machine_module.rst b/docs/plugins/virtual_machine_module.rst index de299e44..e5185d2d 100755 --- a/docs/plugins/virtual_machine_module.rst +++ b/docs/plugins/virtual_machine_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.virtual_machine module -- Create, update or delete virtua .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/vlan_group_module.rst b/docs/plugins/vlan_group_module.rst index 44f8eab1..d0af266e 100755 --- a/docs/plugins/vlan_group_module.rst +++ b/docs/plugins/vlan_group_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vlan_group module -- Create, update or delete vlans group .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, @@ -137,6 +137,43 @@ Parameters API Version Nautobot REST API + .. raw:: html + +
+ + * - .. raw:: html + +
+
+ + .. _ansible_collections.networktocode.nautobot.vlan_group_module__parameter-custom_fields: + + .. rst-class:: ansible-option-title + + **custom_fields** + + .. raw:: html + + + + .. rst-class:: ansible-option-type-line + + :ansible-option-type:`dictionary` + + :ansible-option-versionadded:`added in networktocode.nautobot 3.0.0` + + + .. raw:: html + +
+ + - .. raw:: html + +
+ + Must exist in Nautobot and in key/value format + + .. raw:: html
diff --git a/docs/plugins/vlan_module.rst b/docs/plugins/vlan_module.rst index b69b2bfd..c8667d1a 100755 --- a/docs/plugins/vlan_module.rst +++ b/docs/plugins/vlan_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vlan module -- Create, update or delete vlans within Naut .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/vm_interface_module.rst b/docs/plugins/vm_interface_module.rst index e2ad8e18..d5e68ead 100755 --- a/docs/plugins/vm_interface_module.rst +++ b/docs/plugins/vm_interface_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vm_interface module -- Creates or removes interfaces from .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/docs/plugins/vrf_module.rst b/docs/plugins/vrf_module.rst index 550a00f6..d339c975 100755 --- a/docs/plugins/vrf_module.rst +++ b/docs/plugins/vrf_module.rst @@ -42,7 +42,7 @@ networktocode.nautobot.vrf module -- Create, update or delete vrfs within Nautob .. Collection note .. note:: - This module is part of the `networktocode.nautobot collection `_ (version 5.1.1). + This module is part of the `networktocode.nautobot collection `_ (version 5.2.0). To install it, use: :code:`ansible-galaxy collection install networktocode.nautobot`. You need further requirements to be able to use this module, diff --git a/galaxy.yml b/galaxy.yml index c43d4d19..61b24711 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -9,7 +9,7 @@ namespace: networktocode name: nautobot # The version of the collection. Must be compatible with semantic versioning -version: 5.1.1 +version: 5.2.0 # The path to the Markdown (.md) readme file. This path is relative to the root of the collection readme: README.md diff --git a/poetry.lock b/poetry.lock index 0248c6f0..2e3d21cd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,87 +13,87 @@ files = [ [[package]] name = "aiohttp" -version = "3.9.1" +version = "3.9.5" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.8" files = [ - {file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1f80197f8b0b846a8d5cf7b7ec6084493950d0882cc5537fb7b96a69e3c8590"}, - {file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72444d17777865734aa1a4d167794c34b63e5883abb90356a0364a28904e6c0"}, - {file = "aiohttp-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b05d5cbe9dafcdc733262c3a99ccf63d2f7ce02543620d2bd8db4d4f7a22f83"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c4fa235d534b3547184831c624c0b7c1e262cd1de847d95085ec94c16fddcd5"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:289ba9ae8e88d0ba16062ecf02dd730b34186ea3b1e7489046fc338bdc3361c4"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bff7e2811814fa2271be95ab6e84c9436d027a0e59665de60edf44e529a42c1f"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81b77f868814346662c96ab36b875d7814ebf82340d3284a31681085c051320f"}, - {file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b9c7426923bb7bd66d409da46c41e3fb40f5caf679da624439b9eba92043fa6"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8d44e7bf06b0c0a70a20f9100af9fcfd7f6d9d3913e37754c12d424179b4e48f"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22698f01ff5653fe66d16ffb7658f582a0ac084d7da1323e39fd9eab326a1f26"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ca7ca5abfbfe8d39e653870fbe8d7710be7a857f8a8386fc9de1aae2e02ce7e4"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8d7f98fde213f74561be1d6d3fa353656197f75d4edfbb3d94c9eb9b0fc47f5d"}, - {file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5216b6082c624b55cfe79af5d538e499cd5f5b976820eac31951fb4325974501"}, - {file = "aiohttp-3.9.1-cp310-cp310-win32.whl", hash = "sha256:0e7ba7ff228c0d9a2cd66194e90f2bca6e0abca810b786901a569c0de082f489"}, - {file = "aiohttp-3.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:c7e939f1ae428a86e4abbb9a7c4732bf4706048818dfd979e5e2839ce0159f23"}, - {file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:df9cf74b9bc03d586fc53ba470828d7b77ce51b0582d1d0b5b2fb673c0baa32d"}, - {file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ecca113f19d5e74048c001934045a2b9368d77b0b17691d905af18bd1c21275e"}, - {file = "aiohttp-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8cef8710fb849d97c533f259103f09bac167a008d7131d7b2b0e3a33269185c0"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bea94403a21eb94c93386d559bce297381609153e418a3ffc7d6bf772f59cc35"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91c742ca59045dce7ba76cab6e223e41d2c70d79e82c284a96411f8645e2afff"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c93b7c2e52061f0925c3382d5cb8980e40f91c989563d3d32ca280069fd6a87"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee2527134f95e106cc1653e9ac78846f3a2ec1004cf20ef4e02038035a74544d"}, - {file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11ff168d752cb41e8492817e10fb4f85828f6a0142b9726a30c27c35a1835f01"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b8c3a67eb87394386847d188996920f33b01b32155f0a94f36ca0e0c635bf3e3"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c7b5d5d64e2a14e35a9240b33b89389e0035e6de8dbb7ffa50d10d8b65c57449"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:69985d50a2b6f709412d944ffb2e97d0be154ea90600b7a921f95a87d6f108a2"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:c9110c06eaaac7e1f5562caf481f18ccf8f6fdf4c3323feab28a93d34cc646bd"}, - {file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737e69d193dac7296365a6dcb73bbbf53bb760ab25a3727716bbd42022e8d7a"}, - {file = "aiohttp-3.9.1-cp311-cp311-win32.whl", hash = "sha256:4ee8caa925aebc1e64e98432d78ea8de67b2272252b0a931d2ac3bd876ad5544"}, - {file = "aiohttp-3.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:a34086c5cc285be878622e0a6ab897a986a6e8bf5b67ecb377015f06ed316587"}, - {file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f800164276eec54e0af5c99feb9494c295118fc10a11b997bbb1348ba1a52065"}, - {file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:500f1c59906cd142d452074f3811614be04819a38ae2b3239a48b82649c08821"}, - {file = "aiohttp-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0b0a6a36ed7e164c6df1e18ee47afbd1990ce47cb428739d6c99aaabfaf1b3af"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69da0f3ed3496808e8cbc5123a866c41c12c15baaaead96d256477edf168eb57"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:176df045597e674fa950bf5ae536be85699e04cea68fa3a616cf75e413737eb5"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b796b44111f0cab6bbf66214186e44734b5baab949cb5fb56154142a92989aeb"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f27fdaadce22f2ef950fc10dcdf8048407c3b42b73779e48a4e76b3c35bca26c"}, - {file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcb6532b9814ea7c5a6a3299747c49de30e84472fa72821b07f5a9818bce0f66"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:54631fb69a6e44b2ba522f7c22a6fb2667a02fd97d636048478db2fd8c4e98fe"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4b4c452d0190c5a820d3f5c0f3cd8a28ace48c54053e24da9d6041bf81113183"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:cae4c0c2ca800c793cae07ef3d40794625471040a87e1ba392039639ad61ab5b"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:565760d6812b8d78d416c3c7cfdf5362fbe0d0d25b82fed75d0d29e18d7fc30f"}, - {file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54311eb54f3a0c45efb9ed0d0a8f43d1bc6060d773f6973efd90037a51cd0a3f"}, - {file = "aiohttp-3.9.1-cp312-cp312-win32.whl", hash = "sha256:85c3e3c9cb1d480e0b9a64c658cd66b3cfb8e721636ab8b0e746e2d79a7a9eed"}, - {file = "aiohttp-3.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:11cb254e397a82efb1805d12561e80124928e04e9c4483587ce7390b3866d213"}, - {file = "aiohttp-3.9.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8a22a34bc594d9d24621091d1b91511001a7eea91d6652ea495ce06e27381f70"}, - {file = "aiohttp-3.9.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:598db66eaf2e04aa0c8900a63b0101fdc5e6b8a7ddd805c56d86efb54eb66672"}, - {file = "aiohttp-3.9.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2c9376e2b09895c8ca8b95362283365eb5c03bdc8428ade80a864160605715f1"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41473de252e1797c2d2293804e389a6d6986ef37cbb4a25208de537ae32141dd"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c5857612c9813796960c00767645cb5da815af16dafb32d70c72a8390bbf690"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffcd828e37dc219a72c9012ec44ad2e7e3066bec6ff3aaa19e7d435dbf4032ca"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:219a16763dc0294842188ac8a12262b5671817042b35d45e44fd0a697d8c8361"}, - {file = "aiohttp-3.9.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f694dc8a6a3112059258a725a4ebe9acac5fe62f11c77ac4dcf896edfa78ca28"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bcc0ea8d5b74a41b621ad4a13d96c36079c81628ccc0b30cfb1603e3dfa3a014"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:90ec72d231169b4b8d6085be13023ece8fa9b1bb495e4398d847e25218e0f431"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:cf2a0ac0615842b849f40c4d7f304986a242f1e68286dbf3bd7a835e4f83acfd"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:0e49b08eafa4f5707ecfb321ab9592717a319e37938e301d462f79b4e860c32a"}, - {file = "aiohttp-3.9.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2c59e0076ea31c08553e868cec02d22191c086f00b44610f8ab7363a11a5d9d8"}, - {file = "aiohttp-3.9.1-cp38-cp38-win32.whl", hash = "sha256:4831df72b053b1eed31eb00a2e1aff6896fb4485301d4ccb208cac264b648db4"}, - {file = "aiohttp-3.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:3135713c5562731ee18f58d3ad1bf41e1d8883eb68b363f2ffde5b2ea4b84cc7"}, - {file = "aiohttp-3.9.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:cfeadf42840c1e870dc2042a232a8748e75a36b52d78968cda6736de55582766"}, - {file = "aiohttp-3.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:70907533db712f7aa791effb38efa96f044ce3d4e850e2d7691abd759f4f0ae0"}, - {file = "aiohttp-3.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cdefe289681507187e375a5064c7599f52c40343a8701761c802c1853a504558"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7481f581251bb5558ba9f635db70908819caa221fc79ee52a7f58392778c636"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:49f0c1b3c2842556e5de35f122fc0f0b721334ceb6e78c3719693364d4af8499"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d406b01a9f5a7e232d1b0d161b40c05275ffbcbd772dc18c1d5a570961a1ca4"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d8e4450e7fe24d86e86b23cc209e0023177b6d59502e33807b732d2deb6975f"}, - {file = "aiohttp-3.9.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c0266cd6f005e99f3f51e583012de2778e65af6b73860038b968a0a8888487a"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab221850108a4a063c5b8a70f00dd7a1975e5a1713f87f4ab26a46e5feac5a0e"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c88a15f272a0ad3d7773cf3a37cc7b7d077cbfc8e331675cf1346e849d97a4e5"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:237533179d9747080bcaad4d02083ce295c0d2eab3e9e8ce103411a4312991a0"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:02ab6006ec3c3463b528374c4cdce86434e7b89ad355e7bf29e2f16b46c7dd6f"}, - {file = "aiohttp-3.9.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04fa38875e53eb7e354ece1607b1d2fdee2d175ea4e4d745f6ec9f751fe20c7c"}, - {file = "aiohttp-3.9.1-cp39-cp39-win32.whl", hash = "sha256:82eefaf1a996060602f3cc1112d93ba8b201dbf5d8fd9611227de2003dddb3b7"}, - {file = "aiohttp-3.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:9b05d33ff8e6b269e30a7957bd3244ffbce2a7a35a81b81c382629b80af1a8bf"}, - {file = "aiohttp-3.9.1.tar.gz", hash = "sha256:8fc49a87ac269d4529da45871e2ffb6874e87779c3d0e2ccd813c0899221239d"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fcde4c397f673fdec23e6b05ebf8d4751314fa7c24f93334bf1f1364c1c69ac7"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d6b3f1fabe465e819aed2c421a6743d8debbde79b6a8600739300630a01bf2c"}, + {file = "aiohttp-3.9.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6ae79c1bc12c34082d92bf9422764f799aee4746fd7a392db46b7fd357d4a17a"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d3ebb9e1316ec74277d19c5f482f98cc65a73ccd5430540d6d11682cd857430"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84dabd95154f43a2ea80deffec9cb44d2e301e38a0c9d331cc4aa0166fe28ae3"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a02fbeca6f63cb1f0475c799679057fc9268b77075ab7cf3f1c600e81dd46b"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c26959ca7b75ff768e2776d8055bf9582a6267e24556bb7f7bd29e677932be72"}, + {file = "aiohttp-3.9.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:714d4e5231fed4ba2762ed489b4aec07b2b9953cf4ee31e9871caac895a839c0"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7a6a8354f1b62e15d48e04350f13e726fa08b62c3d7b8401c0a1314f02e3558"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:c413016880e03e69d166efb5a1a95d40f83d5a3a648d16486592c49ffb76d0db"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ff84aeb864e0fac81f676be9f4685f0527b660f1efdc40dcede3c251ef1e867f"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ad7f2919d7dac062f24d6f5fe95d401597fbb015a25771f85e692d043c9d7832"}, + {file = "aiohttp-3.9.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:702e2c7c187c1a498a4e2b03155d52658fdd6fda882d3d7fbb891a5cf108bb10"}, + {file = "aiohttp-3.9.5-cp310-cp310-win32.whl", hash = "sha256:67c3119f5ddc7261d47163ed86d760ddf0e625cd6246b4ed852e82159617b5fb"}, + {file = "aiohttp-3.9.5-cp310-cp310-win_amd64.whl", hash = "sha256:471f0ef53ccedec9995287f02caf0c068732f026455f07db3f01a46e49d76bbb"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d"}, + {file = "aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66331d00fb28dc90aa606d9a54304af76b335ae204d1836f65797d6fe27f1ca2"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff550491f5492ab5ed3533e76b8567f4b37bd2995e780a1f46bca2024223233"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f22eb3a6c1080d862befa0a89c380b4dafce29dc6cd56083f630073d102eb595"}, + {file = "aiohttp-3.9.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a81b1143d42b66ffc40a441379387076243ef7b51019204fd3ec36b9f69e77d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f64fd07515dad67f24b6ea4a66ae2876c01031de91c93075b8093f07c0a2d93d"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:93e22add827447d2e26d67c9ac0161756007f152fdc5210277d00a85f6c92323"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:55b39c8684a46e56ef8c8d24faf02de4a2b2ac60d26cee93bc595651ff545de9"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4715a9b778f4293b9f8ae7a0a7cef9829f02ff8d6277a39d7f40565c737d3771"}, + {file = "aiohttp-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afc52b8d969eff14e069a710057d15ab9ac17cd4b6753042c407dcea0e40bf75"}, + {file = "aiohttp-3.9.5-cp311-cp311-win32.whl", hash = "sha256:b3df71da99c98534be076196791adca8819761f0bf6e08e07fd7da25127150d6"}, + {file = "aiohttp-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:88e311d98cc0bf45b62fc46c66753a83445f5ab20038bcc1b8a1cc05666f428a"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c7a4b7a6cf5b6eb11e109a9755fd4fda7d57395f8c575e166d363b9fc3ec4678"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0a158704edf0abcac8ac371fbb54044f3270bdbc93e254a82b6c82be1ef08f3c"}, + {file = "aiohttp-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d153f652a687a8e95ad367a86a61e8d53d528b0530ef382ec5aaf533140ed00f"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82a6a97d9771cb48ae16979c3a3a9a18b600a8505b1115cfe354dfb2054468b4"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60cdbd56f4cad9f69c35eaac0fbbdf1f77b0ff9456cebd4902f3dd1cf096464c"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8676e8fd73141ded15ea586de0b7cda1542960a7b9ad89b2b06428e97125d4fa"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da00da442a0e31f1c69d26d224e1efd3a1ca5bcbf210978a2ca7426dfcae9f58"}, + {file = "aiohttp-3.9.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18f634d540dd099c262e9f887c8bbacc959847cfe5da7a0e2e1cf3f14dbf2daf"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:320e8618eda64e19d11bdb3bd04ccc0a816c17eaecb7e4945d01deee2a22f95f"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2faa61a904b83142747fc6a6d7ad8fccff898c849123030f8e75d5d967fd4a81"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8c64a6dc3fe5db7b1b4d2b5cb84c4f677768bdc340611eca673afb7cf416ef5a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:393c7aba2b55559ef7ab791c94b44f7482a07bf7640d17b341b79081f5e5cd1a"}, + {file = "aiohttp-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c671dc117c2c21a1ca10c116cfcd6e3e44da7fcde37bf83b2be485ab377b25da"}, + {file = "aiohttp-3.9.5-cp312-cp312-win32.whl", hash = "sha256:5a7ee16aab26e76add4afc45e8f8206c95d1d75540f1039b84a03c3b3800dd59"}, + {file = "aiohttp-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:5ca51eadbd67045396bc92a4345d1790b7301c14d1848feaac1d6a6c9289e888"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:694d828b5c41255e54bc2dddb51a9f5150b4eefa9886e38b52605a05d96566e8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0605cc2c0088fcaae79f01c913a38611ad09ba68ff482402d3410bf59039bfb8"}, + {file = "aiohttp-3.9.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4558e5012ee03d2638c681e156461d37b7a113fe13970d438d95d10173d25f78"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbc053ac75ccc63dc3a3cc547b98c7258ec35a215a92bd9f983e0aac95d3d5b"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4109adee842b90671f1b689901b948f347325045c15f46b39797ae1bf17019de"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6ea1a5b409a85477fd8e5ee6ad8f0e40bf2844c270955e09360418cfd09abac"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3c2890ca8c59ee683fd09adf32321a40fe1cf164e3387799efb2acebf090c11"}, + {file = "aiohttp-3.9.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3916c8692dbd9d55c523374a3b8213e628424d19116ac4308e434dbf6d95bbdd"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8d1964eb7617907c792ca00b341b5ec3e01ae8c280825deadbbd678447b127e1"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d5ab8e1f6bee051a4bf6195e38a5c13e5e161cb7bad83d8854524798bd9fcd6e"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:52c27110f3862a1afbcb2af4281fc9fdc40327fa286c4625dfee247c3ba90156"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:7f64cbd44443e80094309875d4f9c71d0401e966d191c3d469cde4642bc2e031"}, + {file = "aiohttp-3.9.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8b4f72fbb66279624bfe83fd5eb6aea0022dad8eec62b71e7bf63ee1caadeafe"}, + {file = "aiohttp-3.9.5-cp38-cp38-win32.whl", hash = "sha256:6380c039ec52866c06d69b5c7aad5478b24ed11696f0e72f6b807cfb261453da"}, + {file = "aiohttp-3.9.5-cp38-cp38-win_amd64.whl", hash = "sha256:da22dab31d7180f8c3ac7c7635f3bcd53808f374f6aa333fe0b0b9e14b01f91a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1732102949ff6087589408d76cd6dea656b93c896b011ecafff418c9661dc4ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c6021d296318cb6f9414b48e6a439a7f5d1f665464da507e8ff640848ee2a58a"}, + {file = "aiohttp-3.9.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:239f975589a944eeb1bad26b8b140a59a3a320067fb3cd10b75c3092405a1372"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b7b30258348082826d274504fbc7c849959f1989d86c29bc355107accec6cfb"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2adf5c87ff6d8b277814a28a535b59e20bfea40a101db6b3bdca7e9926bc24"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9a3d838441bebcf5cf442700e3963f58b5c33f015341f9ea86dcd7d503c07e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e3a1ae66e3d0c17cf65c08968a5ee3180c5a95920ec2731f53343fac9bad106"}, + {file = "aiohttp-3.9.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9c69e77370cce2d6df5d12b4e12bdcca60c47ba13d1cbbc8645dd005a20b738b"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf56238f4bbf49dab8c2dc2e6b1b68502b1e88d335bea59b3f5b9f4c001475"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d1469f228cd9ffddd396d9948b8c9cd8022b6d1bf1e40c6f25b0fb90b4f893ed"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:45731330e754f5811c314901cebdf19dd776a44b31927fa4b4dbecab9e457b0c"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3fcb4046d2904378e3aeea1df51f697b0467f2aac55d232c87ba162709478c46"}, + {file = "aiohttp-3.9.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8cf142aa6c1a751fcb364158fd710b8a9be874b81889c2bd13aa8893197455e2"}, + {file = "aiohttp-3.9.5-cp39-cp39-win32.whl", hash = "sha256:7b179eea70833c8dee51ec42f3b4097bd6370892fa93f510f76762105568cf09"}, + {file = "aiohttp-3.9.5-cp39-cp39-win_amd64.whl", hash = "sha256:38d80498e2e169bc61418ff36170e0aad0cd268da8b38a17c4cf29d254a8b3f1"}, + {file = "aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551"}, ] [package.dependencies] @@ -132,15 +132,26 @@ files = [ {file = "alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65"}, ] +[[package]] +name = "annotated-types" +version = "0.6.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, + {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, +] + [[package]] name = "ansible-core" -version = "2.15.8" +version = "2.15.11" description = "Radically simple IT automation" optional = false python-versions = ">=3.9" files = [ - {file = "ansible-core-2.15.8.tar.gz", hash = "sha256:8aa49cb1ddbf33d88c2bb4bf09ecd4b0dd8b788e174adca8b88dda6e6bdbf59b"}, - {file = "ansible_core-2.15.8-py3-none-any.whl", hash = "sha256:55e6f4350fb98ac5441620ba981b1d9f7b90aa5f320885965af996e149bd3caa"}, + {file = "ansible_core-2.15.11-py3-none-any.whl", hash = "sha256:8368f64e6596f009ddf308eab8ac32ae1e2642ec5c0d4c03366e673de14f144c"}, + {file = "ansible_core-2.15.11.tar.gz", hash = "sha256:b7761454c923f63a3d1fcac97b14e378bcc9a8518c3dde07f3ec0988c4667a9d"}, ] [package.dependencies] @@ -185,13 +196,13 @@ jinja2 = "*" [[package]] name = "antsibull-changelog" -version = "0.23.0" -description = "Changelog tool for Ansible-base and Ansible collections" +version = "0.26.0" +description = "Changelog tool for Ansible-core and Ansible collections" optional = false python-versions = ">=3.9.0" files = [ - {file = "antsibull_changelog-0.23.0-py3-none-any.whl", hash = "sha256:e9c3425fe6ef8e495aec19705be4af826612f921bdc8dd6dc54d15f70532065f"}, - {file = "antsibull_changelog-0.23.0.tar.gz", hash = "sha256:521985407e1aa2aef1dbfb2b87275cd6f03ea9a96c0c704e9f9cb04141f90e0b"}, + {file = "antsibull_changelog-0.26.0-py3-none-any.whl", hash = "sha256:0a6aa5327790e89a686872fd452a9c31be288a3cb2deb9cc23eb3fc5ea7f0a19"}, + {file = "antsibull_changelog-0.26.0.tar.gz", hash = "sha256:8060c438d9fb5a1025a1e98d4de0ce8d897be6e0c21014216151b93f4e4891ff"}, ] [package.dependencies] @@ -205,20 +216,20 @@ semantic-version = "*" codeqa = ["flake8 (>=3.8.0)", "pylint", "reuse"] coverage = ["coverage[toml]"] dev = ["antsibull-changelog[codeqa]", "antsibull-changelog[coverage]", "antsibull-changelog[formatters]", "antsibull-changelog[test]", "antsibull-changelog[typing]", "nox"] -formatters = ["black", "isort"] +formatters = ["black (>=24)", "isort"] test = ["pytest", "pytest-cov", "pytest-error-for-skips"] toml = ["tomli"] typing = ["mypy", "pyre-check (>=0.9.17)", "types-docutils", "types-pyyaml", "types-toml"] [[package]] name = "antsibull-core" -version = "1.6.0" +version = "1.5.1" description = "Tools for building the Ansible Distribution" optional = false python-versions = ">=3.6.1,<4.0.0" files = [ - {file = "antsibull_core-1.6.0-py3-none-any.whl", hash = "sha256:057968e664eca9ec0f3f943a348a65dfeb94d40c4d2ce460b49fb930ec5513e7"}, - {file = "antsibull_core-1.6.0.tar.gz", hash = "sha256:9c4b0a7b6e46168d45a117c27963ea09f3feb121e8a1e63bb319ae610ac7c932"}, + {file = "antsibull_core-1.5.1-py3-none-any.whl", hash = "sha256:2406c676692d4d2e1c89ef188d4195e74d92a38ef584a5a6b006ecec23c87224"}, + {file = "antsibull_core-1.5.1.tar.gz", hash = "sha256:d5e3813317b332485abb808a9d0754aca2700ca19f8e6bee714187f4c0db8d70"}, ] [package.dependencies] @@ -226,7 +237,7 @@ aiofiles = "*" aiohttp = ">=3.0.0" packaging = ">=20.0" perky = "*" -pydantic = ">=1.0.0,<2.0.0" +pydantic = "*" PyYAML = "*" semantic_version = "*" sh = ">=1.0.0,<2.0.0" @@ -234,30 +245,24 @@ twiggy = ">=0.5.0" [[package]] name = "antsibull-docs" -version = "1.11.1" +version = "1.9.0" description = "Tools for building Ansible documentation" optional = false python-versions = ">=3.6.1,<4.0.0" files = [ - {file = "antsibull_docs-1.11.1-py3-none-any.whl", hash = "sha256:e198ee3aaeb9a95b110f424a91ee36cc30cdc41bd4df2eee9185cd0bf6e00d9c"}, - {file = "antsibull_docs-1.11.1.tar.gz", hash = "sha256:b18649b2a56cd6c84a9dd68563bad57bca0f08510efc4ad2c552daf3763fd9b2"}, + {file = "antsibull_docs-1.9.0-py3-none-any.whl", hash = "sha256:b9fc1243f47a6e32392cbd860ed73f9c34833ee7e9caafbefb3f7e6e01976429"}, + {file = "antsibull_docs-1.9.0.tar.gz", hash = "sha256:aee9383dd24548507ea53dd76adb39367600d2df80d6dcfa81c93c578d589601"}, ] [package.dependencies] -aiohttp = ">=3.0.0" ansible-pygments = "*" antsibull-core = ">=1.2.0,<3.0.0" asyncio-pool = "*" docutils = "*" -jinja2 = ">=3.0" +jinja2 = "*" packaging = "*" -pydantic = ">=1.0.0,<2.0.0" -PyYAML = "*" rstcheck = ">=3.0.0,<7.0.0" -semantic_version = "*" -sh = ">=1.0.0,<2.0.0" sphinx = "*" -twiggy = "*" [[package]] name = "astroid" @@ -335,56 +340,57 @@ dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "bandit" -version = "1.7.6" +version = "1.7.8" description = "Security oriented static analyser for python code." optional = false python-versions = ">=3.8" files = [ - {file = "bandit-1.7.6-py3-none-any.whl", hash = "sha256:36da17c67fc87579a5d20c323c8d0b1643a890a2b93f00b3d1229966624694ff"}, - {file = "bandit-1.7.6.tar.gz", hash = "sha256:72ce7bc9741374d96fb2f1c9a8960829885f1243ffde743de70a19cee353e8f3"}, + {file = "bandit-1.7.8-py3-none-any.whl", hash = "sha256:509f7af645bc0cd8fd4587abc1a038fc795636671ee8204d502b933aee44f381"}, + {file = "bandit-1.7.8.tar.gz", hash = "sha256:36de50f720856ab24a24dbaa5fee2c66050ed97c1477e0a1159deab1775eab6b"}, ] [package.dependencies] colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} -GitPython = ">=3.1.30" PyYAML = ">=5.3.1" rich = "*" stevedore = ">=1.20.0" [package.extras] -test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)", "tomli (>=1.1.0)"] +baseline = ["GitPython (>=3.1.30)"] +sarif = ["jschema-to-python (>=1.2.3)", "sarif-om (>=1.0.4)"] +test = ["beautifulsoup4 (>=4.8.0)", "coverage (>=4.5.4)", "fixtures (>=3.0.0)", "flake8 (>=4.0.0)", "pylint (==1.9.4)", "stestr (>=2.5.0)", "testscenarios (>=0.5.0)", "testtools (>=2.3.0)"] toml = ["tomli (>=1.1.0)"] yaml = ["PyYAML"] [[package]] name = "black" -version = "23.12.1" +version = "24.4.1" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0aaf6041986767a5e0ce663c7a2f0e9eaf21e6ff87a5f95cbf3675bfd4c41d2"}, - {file = "black-23.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c88b3711d12905b74206227109272673edce0cb29f27e1385f33b0163c414bba"}, - {file = "black-23.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a920b569dc6b3472513ba6ddea21f440d4b4c699494d2e972a1753cdc25df7b0"}, - {file = "black-23.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:3fa4be75ef2a6b96ea8d92b1587dd8cb3a35c7e3d51f0738ced0781c3aa3a5a3"}, - {file = "black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba"}, - {file = "black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b"}, - {file = "black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59"}, - {file = "black-23.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50"}, - {file = "black-23.12.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:25e57fd232a6d6ff3f4478a6fd0580838e47c93c83eaf1ccc92d4faf27112c4e"}, - {file = "black-23.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d9e13db441c509a3763a7a3d9a49ccc1b4e974a47be4e08ade2a228876500ec"}, - {file = "black-23.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1bd9c210f8b109b1762ec9fd36592fdd528485aadb3f5849b2740ef17e674e"}, - {file = "black-23.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:ae76c22bde5cbb6bfd211ec343ded2163bba7883c7bc77f6b756a1049436fbb9"}, - {file = "black-23.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1fa88a0f74e50e4487477bc0bb900c6781dbddfdfa32691e780bf854c3b4a47f"}, - {file = "black-23.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a4d6a9668e45ad99d2f8ec70d5c8c04ef4f32f648ef39048d010b0689832ec6d"}, - {file = "black-23.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b18fb2ae6c4bb63eebe5be6bd869ba2f14fd0259bda7d18a46b764d8fb86298a"}, - {file = "black-23.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:c04b6d9d20e9c13f43eee8ea87d44156b8505ca8a3c878773f68b4e4812a421e"}, - {file = "black-23.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3e1b38b3135fd4c025c28c55ddfc236b05af657828a8a6abe5deec419a0b7055"}, - {file = "black-23.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4f0031eaa7b921db76decd73636ef3a12c942ed367d8c3841a0739412b260a54"}, - {file = "black-23.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97e56155c6b737854e60a9ab1c598ff2533d57e7506d97af5481141671abf3ea"}, - {file = "black-23.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:dd15245c8b68fe2b6bd0f32c1556509d11bb33aec9b5d0866dd8e2ed3dba09c2"}, - {file = "black-23.12.1-py3-none-any.whl", hash = "sha256:78baad24af0f033958cad29731e27363183e140962595def56423e626f4bee3e"}, - {file = "black-23.12.1.tar.gz", hash = "sha256:4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5"}, + {file = "black-24.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f7749fd0d97ff9415975a1432fac7df89bf13c3833cea079e55fa004d5f28c0"}, + {file = "black-24.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:859f3cc5d2051adadf8fd504a01e02b0fd866d7549fff54bc9202d524d2e8bd7"}, + {file = "black-24.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59271c9c29dfa97f7fda51f56c7809b3f78e72fd8d2205189bbd23022a0618b6"}, + {file = "black-24.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:5ed9c34cba223149b5a0144951a0f33d65507cf82c5449cb3c35fe4b515fea9a"}, + {file = "black-24.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9dae3ae59d6f2dc93700fd5034a3115434686e66fd6e63d4dcaa48d19880f2b0"}, + {file = "black-24.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5f8698974a81af83283eb47644f2711b5261138d6d9180c863fce673cbe04b13"}, + {file = "black-24.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f404b6e77043b23d0321fb7772522b876b6de737ad3cb97d6b156638d68ce81"}, + {file = "black-24.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:c94e52b766477bdcd010b872ba0714d5458536dc9d0734eff6583ba7266ffd89"}, + {file = "black-24.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:962d9e953872cdb83b97bb737ad47244ce2938054dc946685a4cad98520dab38"}, + {file = "black-24.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b1d8e3b2486b7dd522b1ab2ba1ec4907f0aa8f5e10a33c4271fb331d1d10b70c"}, + {file = "black-24.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed77e214b785148f57e43ca425b6e0850165144aa727d66ac604e56a70bb7825"}, + {file = "black-24.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:4ef4764437d7eba8386689cd06e1fb5341ee0ae2e9e22582b21178782de7ed94"}, + {file = "black-24.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:92b183f8eef5baf7b20a513abcf982ad616f544f593f6688bb2850d2982911f1"}, + {file = "black-24.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:945abd7b3572add997757c94295bb3e73c6ffaf3366b1f26cb2356a4bffd1dc3"}, + {file = "black-24.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db5154b9e5b478031371d8bc41ff37b33855fa223a6cfba456c9b73fb96f77d4"}, + {file = "black-24.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:afc84c33c1a9aaf3d73140cee776b4ddf73ff429ffe6b7c56dc1c9c10725856d"}, + {file = "black-24.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0889f4eb8b3bdf8b189e41a71cf0dbb8141a98346cd1a2695dea5995d416e940"}, + {file = "black-24.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5bb0143f175db45a55227eefd63e90849d96c266330ba31719e9667d0d5ec3b9"}, + {file = "black-24.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:713a04a78e78f28ef7e8df7a16fe075670ea164860fcef3885e4f3dffc0184b3"}, + {file = "black-24.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:171959bc879637a8cdbc53dc3fddae2a83e151937a28cf605fd175ce61e0e94a"}, + {file = "black-24.4.1-py3-none-any.whl", hash = "sha256:ecbab810604fe02c70b3a08afd39beb599f7cc9afd13e81f5336014133b4fe35"}, + {file = "black-24.4.1.tar.gz", hash = "sha256:5241612dc8cad5b6fd47432b8bd04db80e07cfbc53bb69e9ae18985063bcb8dd"}, ] [package.dependencies] @@ -404,13 +410,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2023.11.17" +version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.11.17-py3-none-any.whl", hash = "sha256:e036ab49d5b79556f99cfc2d9320b34cfbe5be05c5871b51de9329f0603b0474"}, - {file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"}, + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] @@ -665,43 +671,43 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "42.0.0" +version = "42.0.5" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-42.0.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:c640b0ef54138fde761ec99a6c7dc4ce05e80420262c20fa239e694ca371d434"}, - {file = "cryptography-42.0.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:678cfa0d1e72ef41d48993a7be75a76b0725d29b820ff3cfd606a5b2b33fda01"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:146e971e92a6dd042214b537a726c9750496128453146ab0ee8971a0299dc9bd"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87086eae86a700307b544625e3ba11cc600c3c0ef8ab97b0fda0705d6db3d4e3"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0a68bfcf57a6887818307600c3c0ebc3f62fbb6ccad2240aa21887cda1f8df1b"}, - {file = "cryptography-42.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5a217bca51f3b91971400890905a9323ad805838ca3fa1e202a01844f485ee87"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ca20550bb590db16223eb9ccc5852335b48b8f597e2f6f0878bbfd9e7314eb17"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:33588310b5c886dfb87dba5f013b8d27df7ffd31dc753775342a1e5ab139e59d"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9515ea7f596c8092fdc9902627e51b23a75daa2c7815ed5aa8cf4f07469212ec"}, - {file = "cryptography-42.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:35cf6ed4c38f054478a9df14f03c1169bb14bd98f0b1705751079b25e1cb58bc"}, - {file = "cryptography-42.0.0-cp37-abi3-win32.whl", hash = "sha256:8814722cffcfd1fbd91edd9f3451b88a8f26a5fd41b28c1c9193949d1c689dc4"}, - {file = "cryptography-42.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:a2a8d873667e4fd2f34aedab02ba500b824692c6542e017075a2efc38f60a4c0"}, - {file = "cryptography-42.0.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:8fedec73d590fd30c4e3f0d0f4bc961aeca8390c72f3eaa1a0874d180e868ddf"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be41b0c7366e5549265adf2145135dca107718fa44b6e418dc7499cfff6b4689"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ca482ea80626048975360c8e62be3ceb0f11803180b73163acd24bf014133a0"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c58115384bdcfe9c7f644c72f10f6f42bed7cf59f7b52fe1bf7ae0a622b3a139"}, - {file = "cryptography-42.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:56ce0c106d5c3fec1038c3cca3d55ac320a5be1b44bf15116732d0bc716979a2"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:324721d93b998cb7367f1e6897370644751e5580ff9b370c0a50dc60a2003513"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:d97aae66b7de41cdf5b12087b5509e4e9805ed6f562406dfcf60e8481a9a28f8"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:85f759ed59ffd1d0baad296e72780aa62ff8a71f94dc1ab340386a1207d0ea81"}, - {file = "cryptography-42.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:206aaf42e031b93f86ad60f9f5d9da1b09164f25488238ac1dc488334eb5e221"}, - {file = "cryptography-42.0.0-cp39-abi3-win32.whl", hash = "sha256:74f18a4c8ca04134d2052a140322002fef535c99cdbc2a6afc18a8024d5c9d5b"}, - {file = "cryptography-42.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:14e4b909373bc5bf1095311fa0f7fcabf2d1a160ca13f1e9e467be1ac4cbdf94"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3005166a39b70c8b94455fdbe78d87a444da31ff70de3331cdec2c568cf25b7e"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:be14b31eb3a293fc6e6aa2807c8a3224c71426f7c4e3639ccf1a2f3ffd6df8c3"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:bd7cf7a8d9f34cc67220f1195884151426ce616fdc8285df9054bfa10135925f"}, - {file = "cryptography-42.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:c310767268d88803b653fffe6d6f2f17bb9d49ffceb8d70aed50ad45ea49ab08"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bdce70e562c69bb089523e75ef1d9625b7417c6297a76ac27b1b8b1eb51b7d0f"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e9326ca78111e4c645f7e49cbce4ed2f3f85e17b61a563328c85a5208cf34440"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:69fd009a325cad6fbfd5b04c711a4da563c6c4854fc4c9544bff3088387c77c0"}, - {file = "cryptography-42.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:988b738f56c665366b1e4bfd9045c3efae89ee366ca3839cd5af53eaa1401bce"}, - {file = "cryptography-42.0.0.tar.gz", hash = "sha256:6cf9b76d6e93c62114bd19485e5cb003115c134cf9ce91f8ac924c44f8c8c3f4"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:a30596bae9403a342c978fb47d9b0ee277699fa53bbafad14706af51fe543d16"}, + {file = "cryptography-42.0.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7ffe927ee6531c78f81aa17e684e2ff617daeba7f189f911065b2ea2d526dec"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2424ff4c4ac7f6b8177b53c17ed5d8fa74ae5955656867f5a8affaca36a27abb"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:329906dcc7b20ff3cad13c069a78124ed8247adcac44b10bea1130e36caae0b4"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b03c2ae5d2f0fc05f9a2c0c997e1bc18c8229f392234e8a0194f202169ccd278"}, + {file = "cryptography-42.0.5-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8837fe1d6ac4a8052a9a8ddab256bc006242696f03368a4009be7ee3075cdb7"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:0270572b8bd2c833c3981724b8ee9747b3ec96f699a9665470018594301439ee"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b8cac287fafc4ad485b8a9b67d0ee80c66bf3574f655d3b97ef2e1082360faf1"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:16a48c23a62a2f4a285699dba2e4ff2d1cff3115b9df052cdd976a18856d8e3d"}, + {file = "cryptography-42.0.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2bce03af1ce5a5567ab89bd90d11e7bbdff56b8af3acbbec1faded8f44cb06da"}, + {file = "cryptography-42.0.5-cp37-abi3-win32.whl", hash = "sha256:b6cd2203306b63e41acdf39aa93b86fb566049aeb6dc489b70e34bcd07adca74"}, + {file = "cryptography-42.0.5-cp37-abi3-win_amd64.whl", hash = "sha256:98d8dc6d012b82287f2c3d26ce1d2dd130ec200c8679b6213b3c73c08b2b7940"}, + {file = "cryptography-42.0.5-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:5e6275c09d2badf57aea3afa80d975444f4be8d3bc58f7f80d2a484c6f9485c8"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4985a790f921508f36f81831817cbc03b102d643b5fcb81cd33df3fa291a1a1"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cde5f38e614f55e28d831754e8a3bacf9ace5d1566235e39d91b35502d6936e"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7367d7b2eca6513681127ebad53b2582911d1736dc2ffc19f2c3ae49997496bc"}, + {file = "cryptography-42.0.5-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cd2030f6650c089aeb304cf093f3244d34745ce0cfcc39f20c6fbfe030102e2a"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a2913c5375154b6ef2e91c10b5720ea6e21007412f6437504ffea2109b5a33d7"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:c41fb5e6a5fe9ebcd58ca3abfeb51dffb5d83d6775405305bfa8715b76521922"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3eaafe47ec0d0ffcc9349e1708be2aaea4c6dd4978d76bf6eb0cb2c13636c6fc"}, + {file = "cryptography-42.0.5-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:1b95b98b0d2af784078fa69f637135e3c317091b615cd0905f8b8a087e86fa30"}, + {file = "cryptography-42.0.5-cp39-abi3-win32.whl", hash = "sha256:1f71c10d1e88467126f0efd484bd44bca5e14c664ec2ede64c32f20875c0d413"}, + {file = "cryptography-42.0.5-cp39-abi3-win_amd64.whl", hash = "sha256:a011a644f6d7d03736214d38832e030d8268bcff4a41f728e6030325fea3e400"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9481ffe3cf013b71b2428b905c4f7a9a4f76ec03065b05ff499bb5682a8d9ad8"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ba334e6e4b1d92442b75ddacc615c5476d4ad55cc29b15d590cc6b86efa487e2"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba3e4a42397c25b7ff88cdec6e2a16c2be18720f317506ee25210f6d31925f9c"}, + {file = "cryptography-42.0.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:111a0d8553afcf8eb02a4fea6ca4f59d48ddb34497aa8706a6cf536f1a5ec576"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cd65d75953847815962c84a4654a84850b2bb4aed3f26fadcc1c13892e1e29f6"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e807b3188f9eb0eaa7bbb579b462c5ace579f1cedb28107ce8b48a9f7ad3679e"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f12764b8fffc7a123f641d7d049d382b73f96a34117e0b637b80643169cec8ac"}, + {file = "cryptography-42.0.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:37dd623507659e08be98eec89323469e8c7b4c1407c85112634ae3dbdb926fdd"}, + {file = "cryptography-42.0.5.tar.gz", hash = "sha256:6fe07eec95dfd477eb9530aef5bead34fec819b3aaf6c5bd6d20565da607bfe1"}, ] [package.dependencies] @@ -719,17 +725,18 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "dill" -version = "0.3.7" +version = "0.3.8" description = "serialize all of Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "dill-0.3.7-py3-none-any.whl", hash = "sha256:76b122c08ef4ce2eedcd4d1abd8e641114bfc6c2867f49f3c41facf65bf19f5e"}, - {file = "dill-0.3.7.tar.gz", hash = "sha256:cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"}, + {file = "dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7"}, + {file = "dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca"}, ] [package.extras] graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] [[package]] name = "docutils" @@ -744,13 +751,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.2.0" +version = "1.2.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, - {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, ] [package.extras] @@ -758,13 +765,13 @@ test = ["pytest (>=6)"] [[package]] name = "execnet" -version = "2.0.2" +version = "2.1.1" description = "execnet: rapid multi-Python deployment" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "execnet-2.0.2-py3-none-any.whl", hash = "sha256:88256416ae766bc9e8895c76a87928c0012183da3cc4fc18016e6f050e025f41"}, - {file = "execnet-2.0.2.tar.gz", hash = "sha256:cc59bc4423742fd71ad227122eb0dd44db51efb3dc4095b45ac9a08c770096af"}, + {file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"}, + {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, ] [package.extras] @@ -856,46 +863,15 @@ files = [ {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, ] -[[package]] -name = "gitdb" -version = "4.0.11" -description = "Git Object Database" -optional = false -python-versions = ">=3.7" -files = [ - {file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, - {file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.41" -description = "GitPython is a Python library used to interact with Git repositories" -optional = false -python-versions = ">=3.7" -files = [ - {file = "GitPython-3.1.41-py3-none-any.whl", hash = "sha256:c36b6634d069b3f719610175020a9aed919421c87552185b085e04fbbdb10b7c"}, - {file = "GitPython-3.1.41.tar.gz", hash = "sha256:ed66e624884f76df22c8e16066d567aaa5a37d5b5fa19db2c6df6f7156db9048"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[package.extras] -test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "sumtypes"] - [[package]] name = "hypothesis" -version = "6.96.4" +version = "6.100.1" description = "A library for property-based testing" optional = false python-versions = ">=3.8" files = [ - {file = "hypothesis-6.96.4-py3-none-any.whl", hash = "sha256:2beb7a148e95a2067563bcca017d71cc286805c792e43ec5cb155ed6d0a1990d"}, - {file = "hypothesis-6.96.4.tar.gz", hash = "sha256:3b0d080bfd3b303e91388507ac7edebd7039ffcc96ac2cfcdc3c45806352c09f"}, + {file = "hypothesis-6.100.1-py3-none-any.whl", hash = "sha256:3dacf6ec90e8d14aaee02cde081ac9a17d5b70105e45e6ac822db72052c0195b"}, + {file = "hypothesis-6.100.1.tar.gz", hash = "sha256:ebff09d7fa4f1fb6a855a812baf17e578b4481b7b70ec6d96496210d1a4c6c35"}, ] [package.dependencies] @@ -904,9 +880,10 @@ exceptiongroup = {version = ">=1.0.0", markers = "python_version < \"3.11\""} sortedcontainers = ">=2.1.0,<3.0.0" [package.extras] -all = ["backports.zoneinfo (>=0.2.1)", "black (>=19.10b0)", "click (>=7.0)", "django (>=3.2)", "dpcontracts (>=0.4)", "lark (>=0.10.1)", "libcst (>=0.3.16)", "numpy (>=1.17.3)", "pandas (>=1.1)", "pytest (>=4.6)", "python-dateutil (>=1.4)", "pytz (>=2014.1)", "redis (>=3.0.0)", "rich (>=9.0.0)", "tzdata (>=2023.4)"] +all = ["backports.zoneinfo (>=0.2.1)", "black (>=19.10b0)", "click (>=7.0)", "crosshair-tool (>=0.0.54)", "django (>=3.2)", "dpcontracts (>=0.4)", "hypothesis-crosshair (>=0.0.2)", "lark (>=0.10.1)", "libcst (>=0.3.16)", "numpy (>=1.17.3)", "pandas (>=1.1)", "pytest (>=4.6)", "python-dateutil (>=1.4)", "pytz (>=2014.1)", "redis (>=3.0.0)", "rich (>=9.0.0)", "tzdata (>=2024.1)"] cli = ["black (>=19.10b0)", "click (>=7.0)", "rich (>=9.0.0)"] codemods = ["libcst (>=0.3.16)"] +crosshair = ["crosshair-tool (>=0.0.54)", "hypothesis-crosshair (>=0.0.2)"] dateutil = ["python-dateutil (>=1.4)"] django = ["django (>=3.2)"] dpcontracts = ["dpcontracts (>=0.4)"] @@ -917,17 +894,17 @@ pandas = ["pandas (>=1.1)"] pytest = ["pytest (>=4.6)"] pytz = ["pytz (>=2014.1)"] redis = ["redis (>=3.0.0)"] -zoneinfo = ["backports.zoneinfo (>=0.2.1)", "tzdata (>=2023.4)"] +zoneinfo = ["backports.zoneinfo (>=0.2.1)", "tzdata (>=2024.1)"] [[package]] name = "idna" -version = "3.6" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, - {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] @@ -1121,71 +1098,71 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" -version = "2.1.4" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de8153a7aae3835484ac168a9a9bdaa0c5eee4e0bc595503c95d53b942879c84"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e888ff76ceb39601c59e219f281466c6d7e66bd375b4ec1ce83bcdc68306796b"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b838c37ba596fcbfca71651a104a611543077156cb0a26fe0c475e1f152ee8"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac1ebf6983148b45b5fa48593950f90ed6d1d26300604f321c74a9ca1609f8e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbad3d346df8f9d72622ac71b69565e621ada2ce6572f37c2eae8dacd60385d"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5291d98cd3ad9a562883468c690a2a238c4a6388ab3bd155b0c75dd55ece858"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a7cc49ef48a3c7a0005a949f3c04f8baa5409d3f663a1b36f0eba9bfe2a0396e"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b83041cda633871572f0d3c41dddd5582ad7d22f65a72eacd8d3d6d00291df26"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win32.whl", hash = "sha256:0c26f67b3fe27302d3a412b85ef696792c4a2386293c53ba683a89562f9399b0"}, - {file = "MarkupSafe-2.1.4-cp310-cp310-win_amd64.whl", hash = "sha256:a76055d5cb1c23485d7ddae533229039b850db711c554a12ea64a0fd8a0129e2"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9e9e3c4020aa2dc62d5dd6743a69e399ce3de58320522948af6140ac959ab863"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0042d6a9880b38e1dd9ff83146cc3c9c18a059b9360ceae207805567aacccc69"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d03fea4c4e9fd0ad75dc2e7e2b6757b80c152c032ea1d1de487461d8140efc"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ab3a886a237f6e9c9f4f7d272067e712cdb4efa774bef494dccad08f39d8ae6"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf5ebbec056817057bfafc0445916bb688a255a5146f900445d081db08cbabb"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e1a0d1924a5013d4f294087e00024ad25668234569289650929ab871231668e7"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:e7902211afd0af05fbadcc9a312e4cf10f27b779cf1323e78d52377ae4b72bea"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c669391319973e49a7c6230c218a1e3044710bc1ce4c8e6eb71f7e6d43a2c131"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win32.whl", hash = "sha256:31f57d64c336b8ccb1966d156932f3daa4fee74176b0fdc48ef580be774aae74"}, - {file = "MarkupSafe-2.1.4-cp311-cp311-win_amd64.whl", hash = "sha256:54a7e1380dfece8847c71bf7e33da5d084e9b889c75eca19100ef98027bd9f56"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a76cd37d229fc385738bd1ce4cba2a121cf26b53864c1772694ad0ad348e509e"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:987d13fe1d23e12a66ca2073b8d2e2a75cec2ecb8eab43ff5624ba0ad42764bc"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5244324676254697fe5c181fc762284e2c5fceeb1c4e3e7f6aca2b6f107e60dc"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78bc995e004681246e85e28e068111a4c3f35f34e6c62da1471e844ee1446250"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4d176cfdfde84f732c4a53109b293d05883e952bbba68b857ae446fa3119b4f"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f9917691f410a2e0897d1ef99619fd3f7dd503647c8ff2475bf90c3cf222ad74"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:f06e5a9e99b7df44640767842f414ed5d7bedaaa78cd817ce04bbd6fd86e2dd6"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:396549cea79e8ca4ba65525470d534e8a41070e6b3500ce2414921099cb73e8d"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-win32.whl", hash = "sha256:f6be2d708a9d0e9b0054856f07ac7070fbe1754be40ca8525d5adccdbda8f475"}, - {file = "MarkupSafe-2.1.4-cp312-cp312-win_amd64.whl", hash = "sha256:5045e892cfdaecc5b4c01822f353cf2c8feb88a6ec1c0adef2a2e705eef0f656"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7a07f40ef8f0fbc5ef1000d0c78771f4d5ca03b4953fc162749772916b298fc4"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d18b66fe626ac412d96c2ab536306c736c66cf2a31c243a45025156cc190dc8a"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:698e84142f3f884114ea8cf83e7a67ca8f4ace8454e78fe960646c6c91c63bfa"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49a3b78a5af63ec10d8604180380c13dcd870aba7928c1fe04e881d5c792dc4e"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:15866d7f2dc60cfdde12ebb4e75e41be862348b4728300c36cdf405e258415ec"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6aa5e2e7fc9bc042ae82d8b79d795b9a62bd8f15ba1e7594e3db243f158b5565"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:54635102ba3cf5da26eb6f96c4b8c53af8a9c0d97b64bdcb592596a6255d8518"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-win32.whl", hash = "sha256:3583a3a3ab7958e354dc1d25be74aee6228938312ee875a22330c4dc2e41beb0"}, - {file = "MarkupSafe-2.1.4-cp37-cp37m-win_amd64.whl", hash = "sha256:d6e427c7378c7f1b2bef6a344c925b8b63623d3321c09a237b7cc0e77dd98ceb"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bf1196dcc239e608605b716e7b166eb5faf4bc192f8a44b81e85251e62584bd2"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4df98d4a9cd6a88d6a585852f56f2155c9cdb6aec78361a19f938810aa020954"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b835aba863195269ea358cecc21b400276747cc977492319fd7682b8cd2c253d"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23984d1bdae01bee794267424af55eef4dfc038dc5d1272860669b2aa025c9e3"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c98c33ffe20e9a489145d97070a435ea0679fddaabcafe19982fe9c971987d5"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9896fca4a8eb246defc8b2a7ac77ef7553b638e04fbf170bff78a40fa8a91474"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b0fe73bac2fed83839dbdbe6da84ae2a31c11cfc1c777a40dbd8ac8a6ed1560f"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c7556bafeaa0a50e2fe7dc86e0382dea349ebcad8f010d5a7dc6ba568eaaa789"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-win32.whl", hash = "sha256:fc1a75aa8f11b87910ffd98de62b29d6520b6d6e8a3de69a70ca34dea85d2a8a"}, - {file = "MarkupSafe-2.1.4-cp38-cp38-win_amd64.whl", hash = "sha256:3a66c36a3864df95e4f62f9167c734b3b1192cb0851b43d7cc08040c074c6279"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:765f036a3d00395a326df2835d8f86b637dbaf9832f90f5d196c3b8a7a5080cb"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21e7af8091007bf4bebf4521184f4880a6acab8df0df52ef9e513d8e5db23411"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5c31fe855c77cad679b302aabc42d724ed87c043b1432d457f4976add1c2c3e"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7653fa39578957bc42e5ebc15cf4361d9e0ee4b702d7d5ec96cdac860953c5b4"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47bb5f0142b8b64ed1399b6b60f700a580335c8e1c57f2f15587bd072012decc"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:fe8512ed897d5daf089e5bd010c3dc03bb1bdae00b35588c49b98268d4a01e00"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:36d7626a8cca4d34216875aee5a1d3d654bb3dac201c1c003d182283e3205949"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b6f14a9cd50c3cb100eb94b3273131c80d102e19bb20253ac7bd7336118a673a"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-win32.whl", hash = "sha256:c8f253a84dbd2c63c19590fa86a032ef3d8cc18923b8049d91bcdeeb2581fbf6"}, - {file = "MarkupSafe-2.1.4-cp39-cp39-win_amd64.whl", hash = "sha256:8b570a1537367b52396e53325769608f2a687ec9a4363647af1cded8928af959"}, - {file = "MarkupSafe-2.1.4.tar.gz", hash = "sha256:3aae9af4cac263007fd6309c64c6ab4506dd2b79382d9d19a1994f9240b8db4f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] @@ -1228,85 +1205,101 @@ test = ["pytest (<5.4)", "pytest-cov"] [[package]] name = "multidict" -version = "6.0.4" +version = "6.0.5" description = "multidict implementation" optional = false python-versions = ">=3.7" files = [ - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, - {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"}, - {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"}, - {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"}, - {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"}, - {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"}, - {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"}, - {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"}, - {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"}, - {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"}, - {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"}, - {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"}, - {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"}, - {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"}, - {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"}, - {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"}, - {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"}, - {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"}, - {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"}, - {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"}, - {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"}, - {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"}, - {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"}, - {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"}, - {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"}, - {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"}, - {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, + {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, + {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, + {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, + {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, + {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, + {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, + {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, + {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, + {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, + {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, + {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, + {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, + {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, + {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, + {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, ] [[package]] @@ -1322,13 +1315,13 @@ files = [ [[package]] name = "netutils" -version = "1.6.0" +version = "1.8.1" description = "Common helper functions useful in network automation." optional = false -python-versions = ">=3.8,<4.0" +python-versions = "<4.0,>=3.8" files = [ - {file = "netutils-1.6.0-py3-none-any.whl", hash = "sha256:e755e6141d0968f1deeb61693a4023f4f5fe1f0dde25d94ac1008f8191d8d237"}, - {file = "netutils-1.6.0.tar.gz", hash = "sha256:bd2fa691e172fe9d5c9e6fc5e2593316eb7fd2c36450454894ed13b274763d70"}, + {file = "netutils-1.8.1-py3-none-any.whl", hash = "sha256:b1d6864a7512c3def0e12a2a879f12ccca9b5077d482f591c56d0171542aa040"}, + {file = "netutils-1.8.1.tar.gz", hash = "sha256:20d0cd9bf3a11588e77266c4aca93b460c732e12c4449e48213f22ab32d78921"}, ] [package.extras] @@ -1336,13 +1329,13 @@ optionals = ["jsonschema (>=4.17.3,<5.0.0)", "napalm (>=4.0.0,<5.0.0)"] [[package]] name = "packaging" -version = "23.2" +version = "24.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, - {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, + {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, + {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] [[package]] @@ -1394,28 +1387,29 @@ files = [ [[package]] name = "platformdirs" -version = "4.1.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +version = "4.2.1" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false python-versions = ">=3.8" files = [ - {file = "platformdirs-4.1.0-py3-none-any.whl", hash = "sha256:11c8f37bcca40db96d8144522d925583bdb7a31f7b0e37e3ed4318400a8e2380"}, - {file = "platformdirs-4.1.0.tar.gz", hash = "sha256:906d548203468492d432bcb294d4bc2fff751bf84971fbb2c10918cc206ee420"}, + {file = "platformdirs-4.2.1-py3-none-any.whl", hash = "sha256:17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1"}, + {file = "platformdirs-4.2.1.tar.gz", hash = "sha256:031cd18d4ec63ec53e82dceaac0417d218a6863f7745dfcc9efe7793b7039bdf"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" -version = "1.3.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1435,66 +1429,124 @@ files = [ [[package]] name = "pycparser" -version = "2.21" +version = "2.22" description = "C parser in Python" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] name = "pydantic" -version = "1.10.14" -description = "Data validation and settings management using python type hints" +version = "2.7.1" +description = "Data validation using Python type hints" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pydantic-1.10.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7f4fcec873f90537c382840f330b90f4715eebc2bc9925f04cb92de593eae054"}, - {file = "pydantic-1.10.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e3a76f571970fcd3c43ad982daf936ae39b3e90b8a2e96c04113a369869dc87"}, - {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d886bd3c3fbeaa963692ef6b643159ccb4b4cefaf7ff1617720cbead04fd1d"}, - {file = "pydantic-1.10.14-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:798a3d05ee3b71967844a1164fd5bdb8c22c6d674f26274e78b9f29d81770c4e"}, - {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:23d47a4b57a38e8652bcab15a658fdb13c785b9ce217cc3a729504ab4e1d6bc9"}, - {file = "pydantic-1.10.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f9f674b5c3bebc2eba401de64f29948ae1e646ba2735f884d1594c5f675d6f2a"}, - {file = "pydantic-1.10.14-cp310-cp310-win_amd64.whl", hash = "sha256:24a7679fab2e0eeedb5a8924fc4a694b3bcaac7d305aeeac72dd7d4e05ecbebf"}, - {file = "pydantic-1.10.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9d578ac4bf7fdf10ce14caba6f734c178379bd35c486c6deb6f49006e1ba78a7"}, - {file = "pydantic-1.10.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa7790e94c60f809c95602a26d906eba01a0abee9cc24150e4ce2189352deb1b"}, - {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aad4e10efa5474ed1a611b6d7f0d130f4aafadceb73c11d9e72823e8f508e663"}, - {file = "pydantic-1.10.14-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1245f4f61f467cb3dfeced2b119afef3db386aec3d24a22a1de08c65038b255f"}, - {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:21efacc678a11114c765eb52ec0db62edffa89e9a562a94cbf8fa10b5db5c046"}, - {file = "pydantic-1.10.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:412ab4a3f6dbd2bf18aefa9f79c7cca23744846b31f1d6555c2ee2b05a2e14ca"}, - {file = "pydantic-1.10.14-cp311-cp311-win_amd64.whl", hash = "sha256:e897c9f35281f7889873a3e6d6b69aa1447ceb024e8495a5f0d02ecd17742a7f"}, - {file = "pydantic-1.10.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d604be0f0b44d473e54fdcb12302495fe0467c56509a2f80483476f3ba92b33c"}, - {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42c7d17706911199798d4c464b352e640cab4351efe69c2267823d619a937e5"}, - {file = "pydantic-1.10.14-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:596f12a1085e38dbda5cbb874d0973303e34227b400b6414782bf205cc14940c"}, - {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bfb113860e9288d0886e3b9e49d9cf4a9d48b441f52ded7d96db7819028514cc"}, - {file = "pydantic-1.10.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:bc3ed06ab13660b565eed80887fcfbc0070f0aa0691fbb351657041d3e874efe"}, - {file = "pydantic-1.10.14-cp37-cp37m-win_amd64.whl", hash = "sha256:ad8c2bc677ae5f6dbd3cf92f2c7dc613507eafe8f71719727cbc0a7dec9a8c01"}, - {file = "pydantic-1.10.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c37c28449752bb1f47975d22ef2882d70513c546f8f37201e0fec3a97b816eee"}, - {file = "pydantic-1.10.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:49a46a0994dd551ec051986806122767cf144b9702e31d47f6d493c336462597"}, - {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53e3819bd20a42470d6dd0fe7fc1c121c92247bca104ce608e609b59bc7a77ee"}, - {file = "pydantic-1.10.14-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0fbb503bbbbab0c588ed3cd21975a1d0d4163b87e360fec17a792f7d8c4ff29f"}, - {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:336709883c15c050b9c55a63d6c7ff09be883dbc17805d2b063395dd9d9d0022"}, - {file = "pydantic-1.10.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4ae57b4d8e3312d486e2498d42aed3ece7b51848336964e43abbf9671584e67f"}, - {file = "pydantic-1.10.14-cp38-cp38-win_amd64.whl", hash = "sha256:dba49d52500c35cfec0b28aa8b3ea5c37c9df183ffc7210b10ff2a415c125c4a"}, - {file = "pydantic-1.10.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c66609e138c31cba607d8e2a7b6a5dc38979a06c900815495b2d90ce6ded35b4"}, - {file = "pydantic-1.10.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d986e115e0b39604b9eee3507987368ff8148222da213cd38c359f6f57b3b347"}, - {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:646b2b12df4295b4c3148850c85bff29ef6d0d9621a8d091e98094871a62e5c7"}, - {file = "pydantic-1.10.14-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282613a5969c47c83a8710cc8bfd1e70c9223feb76566f74683af889faadc0ea"}, - {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:466669501d08ad8eb3c4fecd991c5e793c4e0bbd62299d05111d4f827cded64f"}, - {file = "pydantic-1.10.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:13e86a19dca96373dcf3190fcb8797d40a6f12f154a244a8d1e8e03b8f280593"}, - {file = "pydantic-1.10.14-cp39-cp39-win_amd64.whl", hash = "sha256:08b6ec0917c30861e3fe71a93be1648a2aa4f62f866142ba21670b24444d7fd8"}, - {file = "pydantic-1.10.14-py3-none-any.whl", hash = "sha256:8ee853cd12ac2ddbf0ecbac1c289f95882b2d4482258048079d13be700aa114c"}, - {file = "pydantic-1.10.14.tar.gz", hash = "sha256:46f17b832fe27de7850896f3afee50ea682220dd218f7e9c88d436788419dca6"}, + {file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"}, + {file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"}, ] [package.dependencies] -typing-extensions = ">=4.2.0" +annotated-types = ">=0.4.0" +pydantic-core = "2.18.2" +typing-extensions = ">=4.6.1" [package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.18.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"}, + {file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"}, + {file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"}, + {file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"}, + {file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"}, + {file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"}, + {file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"}, + {file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"}, + {file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"}, + {file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"}, + {file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"}, + {file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"}, + {file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"}, + {file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"}, + {file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"}, + {file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"}, + {file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"}, + {file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"}, + {file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"}, + {file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"}, + {file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"}, + {file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"}, + {file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"}, + {file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"}, + {file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"}, + {file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"}, + {file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"}, + {file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"}, + {file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"}, + {file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"}, + {file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pygments" @@ -1542,29 +1594,28 @@ testutils = ["gitpython (>3)"] [[package]] name = "pynautobot" -version = "2.1.1" +version = "2.0.1" description = "Nautobot API client library" optional = false -python-versions = "<4.0,>=3.8" +python-versions = ">=3.8,<4.0" files = [ - {file = "pynautobot-2.1.1-py3-none-any.whl", hash = "sha256:bcf56fee4733942a87dd07f956418f67580f45d08e5296c8fa3d11316c4ca419"}, - {file = "pynautobot-2.1.1.tar.gz", hash = "sha256:f01907a519689dc842f909f850737f68b53953818c97380a8101406d37e49d1b"}, + {file = "pynautobot-2.0.1-py3-none-any.whl", hash = "sha256:14f9f05ef4c9f8918a56e4892c3badd3c25679aaf5cc6292adcebd7e1ba419c7"}, + {file = "pynautobot-2.0.1.tar.gz", hash = "sha256:de8bf725570baa5bee3a47e2a0de01605ab97e852e5f534b3d8e54a4ed6e2043"}, ] [package.dependencies] -packaging = ">=23.2,<24.0" requests = ">=2.30.0,<3.0.0" urllib3 = ">=1.21.1,<1.27" [[package]] name = "pytest" -version = "7.4.4" +version = "8.1.1" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, - {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, + {file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, + {file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, ] [package.dependencies] @@ -1572,11 +1623,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.4,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-forked" @@ -1595,17 +1646,17 @@ pytest = ">=3.10" [[package]] name = "pytest-mock" -version = "3.12.0" +version = "3.14.0" description = "Thin-wrapper around the mock package for easier use with pytest" optional = false python-versions = ">=3.8" files = [ - {file = "pytest-mock-3.12.0.tar.gz", hash = "sha256:31a40f038c22cad32287bb43932054451ff5583ff094bca6f675df2f8bc1a6e9"}, - {file = "pytest_mock-3.12.0-py3-none-any.whl", hash = "sha256:0972719a7263072da3a21c7f4773069bcc7486027d7e8e1f81d98a47e701bc4f"}, + {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, + {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, ] [package.dependencies] -pytest = ">=5.0" +pytest = ">=6.2.5" [package.extras] dev = ["pre-commit", "pytest-asyncio", "tox"] @@ -1742,13 +1793,13 @@ test = ["commentjson", "packaging", "pytest"] [[package]] name = "rich" -version = "13.7.0" +version = "13.7.1" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" optional = false python-versions = ">=3.7.0" files = [ - {file = "rich-13.7.0-py3-none-any.whl", hash = "sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235"}, - {file = "rich-13.7.0.tar.gz", hash = "sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa"}, + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, ] [package.dependencies] @@ -1760,46 +1811,50 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "rstcheck" -version = "6.1.2" +version = "6.2.1" description = "Checks syntax of reStructuredText and code blocks nested within it" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.8" files = [ - {file = "rstcheck-6.1.2-py3-none-any.whl", hash = "sha256:4aaa46e0debc179f849807c453fa384fd2b75167faf5b1274115730805fab529"}, - {file = "rstcheck-6.1.2.tar.gz", hash = "sha256:f9cb07a72ef9a81d1e32187eae29b00a89421ccba1bde0b1652a08ed0923f61b"}, + {file = "rstcheck-6.2.1-py3-none-any.whl", hash = "sha256:b450943707d8ca053f5c6b9f103ee595f4926a064203e5e579172aefb3fe2c12"}, + {file = "rstcheck-6.2.1.tar.gz", hash = "sha256:e4d173950b023eb12c2b9d2348a8c62bef46612bbc7b29e1e57d37320ed0a891"}, ] [package.dependencies] -rstcheck-core = ">=1.0.2,<2.0.0" -typer = {version = ">=0.4.1,<0.8", extras = ["all"]} +rstcheck-core = ">=1.1" +typer = {version = ">=0.4.1", extras = ["all"]} [package.extras] -docs = ["m2r2 (>=0.3.2)", "sphinx", "sphinx-autobuild (==2021.3.14)", "sphinx-click (>=4.0.3,<5.0.0)", "sphinx-rtd-dark-mode (>=1.2.4,<2.0.0)", "sphinx-rtd-theme (<1)", "sphinxcontrib-spelling (>=7.3)"] -sphinx = ["sphinx"] +dev = ["rstcheck[docs,sphinx,testing,toml,type-check]", "tox (>=3.15)"] +docs = ["m2r2 (>=0.3.2)", "sphinx (>=5.0)", "sphinx-autobuild (>=2021.3.14)", "sphinx-click (>=4.0.3)", "sphinx-rtd-theme (>=1.2)", "sphinxcontrib-spelling (>=7.3)"] +sphinx = ["sphinx (>=5.0)"] testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=7.2)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"] -toml = ["tomli"] +toml = ["tomli (>=2.0)"] +type-check = ["mypy (>=1.0)"] [[package]] name = "rstcheck-core" -version = "1.0.3" +version = "1.2.1" description = "Checks syntax of reStructuredText and code blocks nested within it" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.8" files = [ - {file = "rstcheck_core-1.0.3-py3-none-any.whl", hash = "sha256:d75d7df8f15b58e8aafe322d6fb6ef1ac8d12bb563089b0696948a00ee7f601a"}, - {file = "rstcheck_core-1.0.3.tar.gz", hash = "sha256:add19c9a1b97d9087f4b463b49c12cd8a9c03689a255e99089c70a2692f16369"}, + {file = "rstcheck-core-1.2.1.tar.gz", hash = "sha256:9b330020d912e2864f23f332c1a0569463ca3b06b8fee7b7bdd201b055f7f831"}, + {file = "rstcheck_core-1.2.1-py3-none-any.whl", hash = "sha256:1c100de418b6c9e14d9cf6558644d0ab103fdc447f891313882d02df3a3c52ba"}, ] [package.dependencies] -docutils = ">=0.7,<0.20" -pydantic = ">=1.2,<2.0" -types-docutils = ">=0.18,<0.20" +docutils = ">=0.7" +pydantic = ">=2" [package.extras] -docs = ["m2r2 (>=0.3.2)", "sphinx (>=4.0,<6.0)", "sphinx-autobuild (==2021.3.14)", "sphinx-autodoc-typehints (>=1.15)", "sphinx-rtd-dark-mode (>=1.2.4,<2.0.0)", "sphinx-rtd-theme (<1)", "sphinxcontrib-apidoc (>=0.3)", "sphinxcontrib-spelling (>=7.3)"] -sphinx = ["sphinx (>=4.0,<6.0)"] -testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=6.0)", "pytest-cov (>=3.0)", "pytest-mock (>=3.7)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"] -toml = ["tomli (>=2.0,<3.0)"] +dev = ["rstcheck-core[docs,sphinx,testing,toml,type-check,yaml]", "tox (>=3.15)"] +docs = ["m2r2 (>=0.3.2)", "sphinx (>=5.0,!=7.2.5)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.15)", "sphinx-rtd-theme (>=1.2)", "sphinxcontrib-apidoc (>=0.3)", "sphinxcontrib-spelling (>=7.3)"] +sphinx = ["sphinx (>=5.0)"] +testing = ["coverage-conditional-plugin (>=0.5)", "coverage[toml] (>=6.0)", "pytest (>=7.2)", "pytest-cov (>=3.0)", "pytest-mock (>=3.7)", "pytest-randomly (>=3.0)", "pytest-sugar (>=0.9.5)"] +toml = ["tomli (>=2.0)"] +type-check = ["mypy (>=1.0)", "types-PyYAML (>=6.0.0)", "types-docutils (>=0.18)"] +yaml = ["pyyaml (>=6.0.0)"] [[package]] name = "semantic-version" @@ -1818,19 +1873,19 @@ doc = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "setuptools" -version = "69.0.3" +version = "69.5.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-69.0.3-py3-none-any.whl", hash = "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05"}, - {file = "setuptools-69.0.3.tar.gz", hash = "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"}, + {file = "setuptools-69.5.1-py3-none-any.whl", hash = "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32"}, + {file = "setuptools-69.5.1.tar.gz", hash = "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.2)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "sh" @@ -1864,17 +1919,6 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] -[[package]] -name = "smmap" -version = "5.0.1" -description = "A pure Python implementation of a sliding window memory map manager" -optional = false -python-versions = ">=3.7" -files = [ - {file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, - {file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, -] - [[package]] name = "snowballstemmer" version = "2.2.0" @@ -2061,13 +2105,13 @@ test = ["pytest"] [[package]] name = "stevedore" -version = "5.1.0" +version = "5.2.0" description = "Manage dynamic plugins for Python applications" optional = false python-versions = ">=3.8" files = [ - {file = "stevedore-5.1.0-py3-none-any.whl", hash = "sha256:8cc040628f3cea5d7128f2e76cf486b2251a4e543c7b938f58d9a377f6694a2d"}, - {file = "stevedore-5.1.0.tar.gz", hash = "sha256:a54534acf9b89bc7ed264807013b505bf07f74dbe4bcfa37d32bd063870b087c"}, + {file = "stevedore-5.2.0-py3-none-any.whl", hash = "sha256:1c15d95766ca0569cad14cb6272d4d31dae66b011a929d7c18219c176ea1b5c9"}, + {file = "stevedore-5.2.0.tar.gz", hash = "sha256:46b93ca40e1114cea93d738a6c1e365396981bb6bb78c27045b7587c9473544d"}, ] [package.dependencies] @@ -2086,13 +2130,13 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.3" +version = "0.12.4" description = "Style preserving TOML library" optional = false python-versions = ">=3.7" files = [ - {file = "tomlkit-0.12.3-py3-none-any.whl", hash = "sha256:b0a645a9156dc7cb5d3a1f0d4bab66db287fcb8e0430bdd4664a095ea16414ba"}, - {file = "tomlkit-0.12.3.tar.gz", hash = "sha256:75baf5012d06501f07bee5bf8e801b9f343e7aac5a92581f20f80ce632e6b5a4"}, + {file = "tomlkit-0.12.4-py3-none-any.whl", hash = "sha256:5cd82d48a3dd89dee1f9d64420aa20ae65cfbd00668d6f094d7578a78efbb77b"}, + {file = "tomlkit-0.12.4.tar.gz", hash = "sha256:7ca1cfc12232806517a8515047ba66a19369e71edf2439d0f5824f91032b6cc3"}, ] [[package]] @@ -2111,46 +2155,30 @@ six = "*" [[package]] name = "typer" -version = "0.4.2" +version = "0.12.3" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "typer-0.4.2-py3-none-any.whl", hash = "sha256:023bae00d1baf358a6cc7cea45851639360bb716de687b42b0a4641cd99173f1"}, - {file = "typer-0.4.2.tar.gz", hash = "sha256:b8261c6c0152dd73478b5ba96ba677e5d6948c715c310f7c91079f311f62ec03"}, + {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, + {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, ] [package.dependencies] -click = ">=7.1.1,<9.0.0" -colorama = {version = ">=0.4.3,<0.5.0", optional = true, markers = "extra == \"all\""} -shellingham = {version = ">=1.3.0,<2.0.0", optional = true, markers = "extra == \"all\""} - -[package.extras] -all = ["colorama (>=0.4.3,<0.5.0)", "shellingham (>=1.3.0,<2.0.0)"] -dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] -doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)"] -test = ["black (>=22.3.0,<23.0.0)", "coverage (>=5.2,<6.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<5.4.0)", "pytest-cov (>=2.10.0,<3.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<2.0.0)", "shellingham (>=1.3.0,<2.0.0)"] - -[[package]] -name = "types-docutils" -version = "0.19.1.9" -description = "Typing stubs for docutils" -optional = false -python-versions = "*" -files = [ - {file = "types-docutils-0.19.1.9.tar.gz", hash = "sha256:1d029567e67c52992fd42aa968778bc10a5e445c8450fc751d672d6f50330a4a"}, - {file = "types_docutils-0.19.1.9-py3-none-any.whl", hash = "sha256:556fb7ee19248aa482caa142a830c940b776b0f8c7577a98abe0977574546a1d"}, -] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" [[package]] name = "typing-extensions" -version = "4.9.0" +version = "4.11.0" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"}, - {file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"}, + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, ] [[package]] @@ -2353,18 +2381,18 @@ multidict = ">=4.0" [[package]] name = "zipp" -version = "3.17.0" +version = "3.18.1" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, - {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, + {file = "zipp-3.18.1-py3-none-any.whl", hash = "sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b"}, + {file = "zipp-3.18.1.tar.gz", hash = "sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" diff --git a/pyproject.toml b/pyproject.toml index 6ac3afe9..4b02a3f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "nautobot_ansible_modules" -version = "5.1.1" +version = "5.2.0" description = "Ansible collection to interact with Nautobot's API" authors = ["Network to Code "] license = "Apache 2.0" diff --git a/tasks.py b/tasks.py index e186bc97..b96c60e0 100644 --- a/tasks.py +++ b/tasks.py @@ -279,3 +279,10 @@ def galaxy_build(context, force=False): if force: command += " --force" context.run(command) + + +@task() +def make_docs(context): + """Update ansible module docs before release.""" + command = "./hacking/make-docs.sh" + context.run(command) From 0edc0c81452b01c7476b1a103425351030f5d084 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Thu, 25 Apr 2024 09:02:31 -0500 Subject: [PATCH 35/36] Fixes black formatting --- plugins/filter/graphql.py | 1 + tests/unit/action/test_graphql_query.py | 1 + tests/unit/conftest.py | 1 + tests/unit/lookup/test_lookup_graphql.py | 1 + tests/unit/module_utils/test_graphql_utils.py | 1 + 5 files changed, 5 insertions(+) diff --git a/plugins/filter/graphql.py b/plugins/filter/graphql.py index 67b450b7..06c287f2 100644 --- a/plugins/filter/graphql.py +++ b/plugins/filter/graphql.py @@ -1,4 +1,5 @@ """GraphQL related filter plugins.""" + # Copyright (c) 2022, Network to Code (@networktocode) # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) diff --git a/tests/unit/action/test_graphql_query.py b/tests/unit/action/test_graphql_query.py index d261b83c..b182788c 100644 --- a/tests/unit/action/test_graphql_query.py +++ b/tests/unit/action/test_graphql_query.py @@ -1,4 +1,5 @@ """Tests for Nautobot GraphQL Query Lookup Plugin.""" + from ansible.errors import AnsibleError import pytest diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index 2f8ce4f6..c885002c 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -1,4 +1,5 @@ """Pytest conftest setup.""" + import pytest import pynautobot diff --git a/tests/unit/lookup/test_lookup_graphql.py b/tests/unit/lookup/test_lookup_graphql.py index 3e17e30a..b525714e 100644 --- a/tests/unit/lookup/test_lookup_graphql.py +++ b/tests/unit/lookup/test_lookup_graphql.py @@ -1,4 +1,5 @@ """Tests for Nautobot GraphQL Query Lookup Plugin.""" + from ansible.errors import AnsibleError, AnsibleLookupError import pynautobot import pytest diff --git a/tests/unit/module_utils/test_graphql_utils.py b/tests/unit/module_utils/test_graphql_utils.py index 2eb23c43..4cb763a2 100644 --- a/tests/unit/module_utils/test_graphql_utils.py +++ b/tests/unit/module_utils/test_graphql_utils.py @@ -1,4 +1,5 @@ """Tests for Nautobot GraphQL Query Lookup Plugin.""" + from ansible.errors import AnsibleError import pynautobot import pytest From c04f036c11e825b8596c5dab99688956634ba8c0 Mon Sep 17 00:00:00 2001 From: Joe Wesch Date: Thu, 25 Apr 2024 09:17:47 -0500 Subject: [PATCH 36/36] Updates pynautobot to 2.1.1+ --- poetry.lock | 17 +++++++++-------- pyproject.toml | 3 +-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2e3d21cd..7c67e6e3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1329,13 +1329,13 @@ optionals = ["jsonschema (>=4.17.3,<5.0.0)", "napalm (>=4.0.0,<5.0.0)"] [[package]] name = "packaging" -version = "24.0" +version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, ] [[package]] @@ -1594,16 +1594,17 @@ testutils = ["gitpython (>3)"] [[package]] name = "pynautobot" -version = "2.0.1" +version = "2.1.1" description = "Nautobot API client library" optional = false -python-versions = ">=3.8,<4.0" +python-versions = "<4.0,>=3.8" files = [ - {file = "pynautobot-2.0.1-py3-none-any.whl", hash = "sha256:14f9f05ef4c9f8918a56e4892c3badd3c25679aaf5cc6292adcebd7e1ba419c7"}, - {file = "pynautobot-2.0.1.tar.gz", hash = "sha256:de8bf725570baa5bee3a47e2a0de01605ab97e852e5f534b3d8e54a4ed6e2043"}, + {file = "pynautobot-2.1.1-py3-none-any.whl", hash = "sha256:bcf56fee4733942a87dd07f956418f67580f45d08e5296c8fa3d11316c4ca419"}, + {file = "pynautobot-2.1.1.tar.gz", hash = "sha256:f01907a519689dc842f909f850737f68b53953818c97380a8101406d37e49d1b"}, ] [package.dependencies] +packaging = ">=23.2,<24.0" requests = ">=2.30.0,<3.0.0" urllib3 = ">=1.21.1,<1.27" @@ -2397,4 +2398,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "06c26ad974f35832165ebd7544346bf0becc6aa879b7793e5abeb0b54795f716" +content-hash = "6ecc4cbcbbb7f4faf9cb6b485ad57353098511446b8ea1a0fa2c679a00500d9c" diff --git a/pyproject.toml b/pyproject.toml index 4b02a3f5..84b537d5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ license = "Apache 2.0" [tool.poetry.dependencies] python = "^3.9" netutils = "^1.2" -pynautobot = "^2.0.1" +pynautobot = "^2.1.1" ansible-core = "^2.14" [tool.poetry.dev-dependencies] @@ -27,7 +27,6 @@ importlib-metadata = "1.7.0" pylint = "^2.6.0" sphinx_rtd_theme = "*" hypothesis = "^6.8.0" -pynautobot = "^2.0" pytest-pythonpath = "^0.7.3" parameterized = "^0.8.1" invoke = "^1.6.0"