Skip to content

Commit 1608cf5

Browse files
authored
Merge pull request #1518 from netbox-community/feature/add-tenant-to-vlan-group
Add tenant field support to netbox_vlan_group
2 parents fcf6ff5 + 3b3e4a4 commit 1608cf5

File tree

4 files changed

+111
-1
lines changed

4 files changed

+111
-1
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
---
2+
minor_changes:
3+
- "netbox_vlan_group - Add tenant field support (https://github.com/netbox-community/ansible_modules/issues/1446)"

plugins/modules/netbox_vlan_group.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@
9191
type: list
9292
elements: raw
9393
version_added: "3.20.0"
94+
tenant:
95+
description:
96+
- The tenant that the VLAN group will be assigned to
97+
required: false
98+
type: raw
99+
version_added: "3.23.0"
94100
tags:
95101
description:
96102
- The tags to add/update
@@ -145,6 +151,17 @@
145151
]
146152
state: present
147153
154+
- name: Create vlan group with tenant assignment
155+
netbox_vlan_group:
156+
netbox_url: http://netbox.local
157+
netbox_token: thisIsMyToken
158+
data:
159+
name: Test vlan group
160+
scope_type: "dcim.site"
161+
scope: Test Site
162+
tenant: Test Tenant
163+
state: present
164+
148165
- name: Delete vlan group within netbox
149166
netbox_vlan_group:
150167
netbox_url: http://netbox.local
@@ -212,6 +229,7 @@ def main():
212229
min_vid=dict(required=False, type="int"),
213230
max_vid=dict(required=False, type="int"),
214231
vid_ranges=dict(required=False, type="list", elements="raw"),
232+
tenant=dict(required=False, type="raw"),
215233
description=dict(required=False, type="str"),
216234
tags=dict(required=False, type="list", elements="raw"),
217235
custom_fields=dict(required=False, type="dict"),

tests/integration/netbox-deploy.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ def make_netbox_calls(endpoint, payload):
6060
# ORDER OF OPERATIONS FOR THE MOST PART
6161

6262
# Create TENANTS
63-
tenants = [{"name": "Test Tenant", "slug": "test-tenant"}]
63+
tenants = [
64+
{"name": "Test Tenant", "slug": "test-tenant"},
65+
{"name": "Test Tenant 2", "slug": "test-tenant-2"},
66+
]
6467
created_tenants = make_netbox_calls(nb.tenancy.tenants, tenants)
6568
# Test Tenant to be used later on
6669
test_tenant = nb.tenancy.tenants.get(slug="test-tenant")

tests/integration/targets/v4.3/tasks/netbox_vlan_group.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,3 +312,89 @@
312312
- results['vlan_group']['scope_id'] == 1
313313
- results['vlan_group']['description'] == "Ansible updated description"
314314
- results['msg'] == "vlan_group VLAN Group Location already exists"
315+
316+
- name: "VLAN_GROUP 13: Create VLAN group with tenant"
317+
netbox.netbox.netbox_vlan_group:
318+
netbox_url: http://localhost:32768
319+
netbox_token: "0123456789abcdef0123456789abcdef01234567"
320+
data:
321+
name: VLAN Group Tenant Test
322+
scope_type: dcim.site
323+
scope: Test Site
324+
tenant: Test Tenant
325+
state: present
326+
register: results
327+
328+
- name: "VLAN_GROUP 13: ASSERT - Create VLAN group with tenant"
329+
ansible.builtin.assert:
330+
that:
331+
- results is changed
332+
- results['diff']['before']['state'] == "absent"
333+
- results['diff']['after']['state'] == "present"
334+
- results['vlan_group']['name'] == "VLAN Group Tenant Test"
335+
- results['vlan_group']['slug'] == "vlan-group-tenant-test"
336+
- results['vlan_group']['scope_type'] == "dcim.site"
337+
- results['vlan_group']['scope_id'] == 1
338+
- results['vlan_group']['tenant'] == 1
339+
- results['msg'] == "vlan_group VLAN Group Tenant Test created"
340+
341+
- name: "VLAN_GROUP 14: Create duplicate VLAN group with tenant (idempotency)"
342+
netbox.netbox.netbox_vlan_group:
343+
netbox_url: http://localhost:32768
344+
netbox_token: "0123456789abcdef0123456789abcdef01234567"
345+
data:
346+
name: VLAN Group Tenant Test
347+
scope_type: dcim.site
348+
scope: Test Site
349+
tenant: Test Tenant
350+
state: present
351+
register: results
352+
353+
- name: "VLAN_GROUP 14: ASSERT - Create duplicate VLAN group with tenant (idempotency)"
354+
ansible.builtin.assert:
355+
that:
356+
- results is not changed
357+
- results['vlan_group']['name'] == "VLAN Group Tenant Test"
358+
- results['vlan_group']['tenant'] == 1
359+
- results['msg'] == "vlan_group VLAN Group Tenant Test already exists"
360+
361+
- name: "VLAN_GROUP 15: Update VLAN group tenant"
362+
netbox.netbox.netbox_vlan_group:
363+
netbox_url: http://localhost:32768
364+
netbox_token: "0123456789abcdef0123456789abcdef01234567"
365+
data:
366+
name: VLAN Group Tenant Test
367+
scope_type: dcim.site
368+
scope: Test Site
369+
tenant: Test Tenant 2
370+
state: present
371+
register: results
372+
373+
- name: "VLAN_GROUP 15: ASSERT - Update VLAN group tenant"
374+
ansible.builtin.assert:
375+
that:
376+
- results is changed
377+
- results['diff']['before']['tenant'] == 1
378+
- results['diff']['after']['tenant'] == 2
379+
- results['vlan_group']['name'] == "VLAN Group Tenant Test"
380+
- results['vlan_group']['tenant'] == 2
381+
- results['msg'] == "vlan_group VLAN Group Tenant Test updated"
382+
383+
- name: "VLAN_GROUP 16: Delete VLAN group with tenant"
384+
netbox.netbox.netbox_vlan_group:
385+
netbox_url: http://localhost:32768
386+
netbox_token: "0123456789abcdef0123456789abcdef01234567"
387+
data:
388+
name: VLAN Group Tenant Test
389+
scope_type: dcim.site
390+
scope: Test Site
391+
state: absent
392+
register: results
393+
394+
- name: "VLAN_GROUP 16: ASSERT - Delete VLAN group with tenant"
395+
ansible.builtin.assert:
396+
that:
397+
- results is changed
398+
- results['diff']['before']['state'] == "present"
399+
- results['diff']['after']['state'] == "absent"
400+
- results['msg'] == "vlan_group VLAN Group Tenant Test deleted"

0 commit comments

Comments
 (0)