Skip to content

Commit 48bdaef

Browse files
authored
Add netbox_user module (#1303)
* Add netbox_user module * Add netbox_user_group module * Add netbox_permission module * Fix sanity checks in netbox_user.py * Fix netbox_permission test indentation * Apply black fixes for netbox_permission.py * Add netbox_token module * Run make-docs.sh * Fix ansible-lint * Update examples for netbox_token * Rename all permission test cases correctly * Fix permission filtering * Correctly generate query parameters for lists of groups and permissions * Remove unused import * Restore group='slug' to QUERY_TYPES * Always update user password if specified * Set username as user id in QUERY_TYPES
1 parent fb880e0 commit 48bdaef

23 files changed

+6624
-2
lines changed

docs/plugins/index.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ Modules
9898
* :ansplugin:`netbox_module module <netbox.netbox.netbox_module#module>` -- Create, update or delete module within NetBox
9999
* :ansplugin:`netbox_module_bay module <netbox.netbox.netbox_module_bay#module>` -- Create, update or delete module bay within NetBox
100100
* :ansplugin:`netbox_module_type module <netbox.netbox.netbox_module_type#module>` -- Create, update or delete module types within NetBox
101+
* :ansplugin:`netbox_permission module <netbox.netbox.netbox_permission#module>` -- Creates or removes permissions from NetBox
101102
* :ansplugin:`netbox_platform module <netbox.netbox.netbox_platform#module>` -- Create or delete platforms within NetBox
102103
* :ansplugin:`netbox_power_feed module <netbox.netbox.netbox_power_feed#module>` -- Create, update or delete power feeds within NetBox
103104
* :ansplugin:`netbox_power_outlet module <netbox.netbox.netbox_power_outlet#module>` -- Create, update or delete power outlets within NetBox
@@ -123,6 +124,11 @@ Modules
123124
* :ansplugin:`netbox_tag module <netbox.netbox.netbox_tag#module>` -- Creates or removes tags from NetBox
124125
* :ansplugin:`netbox_tenant module <netbox.netbox.netbox_tenant#module>` -- Creates or removes tenants from NetBox
125126
* :ansplugin:`netbox_tenant_group module <netbox.netbox.netbox_tenant_group#module>` -- Creates or removes tenant groups from NetBox
127+
* :ansplugin:`netbox_token module <netbox.netbox.netbox_token#module>` -- Creates or removes tokens from NetBox
128+
* :ansplugin:`netbox_tunnel module <netbox.netbox.netbox_tunnel#module>` -- Create, update or delete tunnels within NetBox
129+
* :ansplugin:`netbox_tunnel_group module <netbox.netbox.netbox_tunnel_group#module>` -- Create, update or delete tunnel groups within NetBox
130+
* :ansplugin:`netbox_user module <netbox.netbox.netbox_user#module>` -- Creates or removes users from NetBox
131+
* :ansplugin:`netbox_user_group module <netbox.netbox.netbox_user_group#module>` -- Creates or removes user groups from NetBox
126132
* :ansplugin:`netbox_virtual_chassis module <netbox.netbox.netbox_virtual_chassis#module>` -- Create, update or delete virtual chassis within NetBox
127133
* :ansplugin:`netbox_virtual_disk module <netbox.netbox.netbox_virtual_disk#module>` -- Creates or removes disks from virtual machines in NetBox
128134
* :ansplugin:`netbox_virtual_machine module <netbox.netbox.netbox_virtual_machine#module>` -- Create, update or delete virtual\_machines within NetBox
@@ -184,6 +190,7 @@ Modules
184190
netbox_module_module
185191
netbox_module_bay_module
186192
netbox_module_type_module
193+
netbox_permission_module
187194
netbox_platform_module
188195
netbox_power_feed_module
189196
netbox_power_outlet_module
@@ -209,6 +216,11 @@ Modules
209216
netbox_tag_module
210217
netbox_tenant_module
211218
netbox_tenant_group_module
219+
netbox_token_module
220+
netbox_tunnel_module
221+
netbox_tunnel_group_module
222+
netbox_user_module
223+
netbox_user_group_module
212224
netbox_virtual_chassis_module
213225
netbox_virtual_disk_module
214226
netbox_virtual_machine_module

docs/plugins/nb_inventory_inventory.rst

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,6 +1993,55 @@ Parameters
19931993
- :ansible-option-choices-entry-default:`true` :ansible-option-choices-default-mark:`← (default)`
19941994

19951995

1996+
.. raw:: html
1997+
1998+
</div>
1999+
2000+
* - .. raw:: html
2001+
2002+
<div class="ansible-option-cell">
2003+
<div class="ansibleOptionAnchor" id="parameter-rename_variables"></div>
2004+
2005+
.. _ansible_collections.netbox.netbox.nb_inventory_inventory__parameter-rename_variables:
2006+
2007+
.. rst-class:: ansible-option-title
2008+
2009+
**rename_variables**
2010+
2011+
.. raw:: html
2012+
2013+
<a class="ansibleOptionLink" href="#parameter-rename_variables" title="Permalink to this option"></a>
2014+
2015+
.. ansible-option-type-line::
2016+
2017+
:ansible-option-type:`list` / :ansible-option-elements:`elements=dictionary`
2018+
2019+
2020+
2021+
2022+
.. raw:: html
2023+
2024+
</div>
2025+
2026+
- .. raw:: html
2027+
2028+
<div class="ansible-option-cell">
2029+
2030+
Rename variables evaluated by nb\_inventory, before writing them.
2031+
2032+
Each list entry contains a dict with a 'pattern' and a 'repl'.
2033+
2034+
Both 'pattern' and 'repl' are regular expressions.
2035+
2036+
The first matching expression is used, subsequent matches are ignored.
2037+
2038+
Internally \`re.sub\` is used.
2039+
2040+
2041+
.. rst-class:: ansible-option-line
2042+
2043+
:ansible-option-default-bold:`Default:` :ansible-option-default:`[]`
2044+
19962045
.. raw:: html
19972046

19982047
</div>

docs/plugins/netbox_cluster_group_module.rst

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,51 @@ Parameters
198198
Must exist in NetBox
199199

200200

201+
.. raw:: html
202+
203+
</div>
204+
205+
* - .. raw:: html
206+
207+
<div class="ansible-option-indent"></div><div class="ansible-option-cell">
208+
<div class="ansibleOptionAnchor" id="parameter-data/description"></div>
209+
210+
.. raw:: latex
211+
212+
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
213+
214+
.. _ansible_collections.netbox.netbox.netbox_cluster_group_module__parameter-data/description:
215+
216+
.. rst-class:: ansible-option-title
217+
218+
**description**
219+
220+
.. raw:: html
221+
222+
<a class="ansibleOptionLink" href="#parameter-data/description" title="Permalink to this option"></a>
223+
224+
.. ansible-option-type-line::
225+
226+
:ansible-option-type:`string`
227+
228+
:ansible-option-versionadded:`added in netbox.netbox 3.20.0`
229+
230+
231+
.. raw:: html
232+
233+
</div>
234+
235+
.. raw:: latex
236+
237+
\end{minipage}
238+
239+
- .. raw:: html
240+
241+
<div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
242+
243+
The description of the cluster group
244+
245+
201246
.. raw:: html
202247

203248
</div>

docs/plugins/netbox_cluster_module.rst

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,51 @@ Parameters
450450
Required if \ :emphasis:`state=present`\ and the cluster does not exist yet
451451

452452

453+
.. raw:: html
454+
455+
</div>
456+
457+
* - .. raw:: html
458+
459+
<div class="ansible-option-indent"></div><div class="ansible-option-cell">
460+
<div class="ansibleOptionAnchor" id="parameter-data/status"></div>
461+
462+
.. raw:: latex
463+
464+
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
465+
466+
.. _ansible_collections.netbox.netbox.netbox_cluster_module__parameter-data/status:
467+
468+
.. rst-class:: ansible-option-title
469+
470+
**status**
471+
472+
.. raw:: html
473+
474+
<a class="ansibleOptionLink" href="#parameter-data/status" title="Permalink to this option"></a>
475+
476+
.. ansible-option-type-line::
477+
478+
:ansible-option-type:`any`
479+
480+
:ansible-option-versionadded:`added in netbox.netbox 3.20.0`
481+
482+
483+
.. raw:: html
484+
485+
</div>
486+
487+
.. raw:: latex
488+
489+
\end{minipage}
490+
491+
- .. raw:: html
492+
493+
<div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
494+
495+
Status of the cluster
496+
497+
453498
.. raw:: html
454499

455500
</div>
@@ -787,7 +832,7 @@ Examples
787832
- Schnozzberry
788833
state: present
789834

790-
- name: Update the group and site of an existing cluster
835+
- name: Update the group, site and status of an existing cluster
791836
netbox.netbox.netbox_cluster:
792837
netbox_url: http://netbox.local
793838
netbox_token: thisIsMyToken
@@ -796,6 +841,7 @@ Examples
796841
cluster_type: qemu
797842
cluster_group: GROUP
798843
site: SITE
844+
status: planned
799845
state: present
800846

801847

docs/plugins/netbox_custom_field_module.rst

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,51 @@ Parameters
582582
The content type(s) to apply this custom field to (NetBox 4.0+)
583583

584584

585+
.. raw:: html
586+
587+
</div>
588+
589+
* - .. raw:: html
590+
591+
<div class="ansible-option-indent"></div><div class="ansible-option-cell">
592+
<div class="ansibleOptionAnchor" id="parameter-data/related_object_type"></div>
593+
594+
.. raw:: latex
595+
596+
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
597+
598+
.. _ansible_collections.netbox.netbox.netbox_custom_field_module__parameter-data/related_object_type:
599+
600+
.. rst-class:: ansible-option-title
601+
602+
**related_object_type**
603+
604+
.. raw:: html
605+
606+
<a class="ansibleOptionLink" href="#parameter-data/related_object_type" title="Permalink to this option"></a>
607+
608+
.. ansible-option-type-line::
609+
610+
:ansible-option-type:`string`
611+
612+
:ansible-option-versionadded:`added in netbox.netbox 3.20.0`
613+
614+
615+
.. raw:: html
616+
617+
</div>
618+
619+
.. raw:: latex
620+
621+
\end{minipage}
622+
623+
- .. raw:: html
624+
625+
<div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
626+
627+
The object type of the custom field (if any) (NetBox 4.0+)
628+
629+
585630
.. raw:: html
586631

587632
</div>

docs/plugins/netbox_location_module.rst

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,51 @@ Parameters
240240
The description of the location
241241

242242

243+
.. raw:: html
244+
245+
</div>
246+
247+
* - .. raw:: html
248+
249+
<div class="ansible-option-indent"></div><div class="ansible-option-cell">
250+
<div class="ansibleOptionAnchor" id="parameter-data/facility"></div>
251+
252+
.. raw:: latex
253+
254+
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
255+
256+
.. _ansible_collections.netbox.netbox.netbox_location_module__parameter-data/facility:
257+
258+
.. rst-class:: ansible-option-title
259+
260+
**facility**
261+
262+
.. raw:: html
263+
264+
<a class="ansibleOptionLink" href="#parameter-data/facility" title="Permalink to this option"></a>
265+
266+
.. ansible-option-type-line::
267+
268+
:ansible-option-type:`string`
269+
270+
:ansible-option-versionadded:`added in netbox.netbox 3.20.0`
271+
272+
273+
.. raw:: html
274+
275+
</div>
276+
277+
.. raw:: latex
278+
279+
\end{minipage}
280+
281+
- .. raw:: html
282+
283+
<div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
284+
285+
Data center provider or facility, ex. Equinix NY7
286+
287+
243288
.. raw:: html
244289

245290
</div>
@@ -410,6 +455,51 @@ Parameters
410455
This is auto-generated following NetBox rules if not provided
411456

412457

458+
.. raw:: html
459+
460+
</div>
461+
462+
* - .. raw:: html
463+
464+
<div class="ansible-option-indent"></div><div class="ansible-option-cell">
465+
<div class="ansibleOptionAnchor" id="parameter-data/status"></div>
466+
467+
.. raw:: latex
468+
469+
\hspace{0.02\textwidth}\begin{minipage}[t]{0.3\textwidth}
470+
471+
.. _ansible_collections.netbox.netbox.netbox_location_module__parameter-data/status:
472+
473+
.. rst-class:: ansible-option-title
474+
475+
**status**
476+
477+
.. raw:: html
478+
479+
<a class="ansibleOptionLink" href="#parameter-data/status" title="Permalink to this option"></a>
480+
481+
.. ansible-option-type-line::
482+
483+
:ansible-option-type:`any`
484+
485+
:ansible-option-versionadded:`added in netbox.netbox 3.20.0`
486+
487+
488+
.. raw:: html
489+
490+
</div>
491+
492+
.. raw:: latex
493+
494+
\end{minipage}
495+
496+
- .. raw:: html
497+
498+
<div class="ansible-option-indent-desc"></div><div class="ansible-option-cell">
499+
500+
Status of the location
501+
502+
413503
.. raw:: html
414504

415505
</div>
@@ -734,14 +824,16 @@ Examples
734824
site: Test Site
735825
state: present
736826

737-
- name: Create location within NetBox with a parent location
827+
- name: Create location within NetBox with a parent location, status and facility
738828
netbox.netbox.netbox_location:
739829
netbox_url: http://netbox.local
740830
netbox_token: thisIsMyToken
741831
data:
742832
name: Child location
743833
site: Test Site
744834
parent_location: Test location
835+
status: planned
836+
facility: Test Facility
745837
state: present
746838

747839
- name: Delete location within NetBox

0 commit comments

Comments
 (0)