Skip to content

Commit 9e078fb

Browse files
authored
Adjust modules for NetBox 4.0 support (#1234)
1 parent b1bfa89 commit 9e078fb

File tree

7 files changed

+55
-31
lines changed

7 files changed

+55
-31
lines changed

.github/workflows/main.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
steps:
1111

1212
- name: Checkout repo
13-
uses: actions/checkout@v3
13+
uses: actions/checkout@v4
1414

1515
- name: Run black
1616
uses: psf/black@stable
@@ -35,10 +35,10 @@ jobs:
3535
steps:
3636

3737
- name: Checkout repo
38-
uses: actions/checkout@v3
38+
uses: actions/checkout@v4
3939

4040
- name: Set up Python ${{ matrix.python-version }}
41-
uses: actions/setup-python@v4
41+
uses: actions/setup-python@v5
4242
with:
4343
python-version: ${{ matrix.python-version }}
4444

@@ -86,7 +86,7 @@ jobs:
8686
steps:
8787

8888
- name: Checkout repo
89-
uses: actions/checkout@v3
89+
uses: actions/checkout@v4
9090

9191
- name: Clone & Start netbox-docker containers - ${{ matrix.VERSION }}
9292
run: |
@@ -100,7 +100,7 @@ jobs:
100100
cd ..
101101
102102
- name: Set up Python ${{ env.python-version }}
103-
uses: actions/setup-python@v4
103+
uses: actions/setup-python@v5
104104
with:
105105
python-version: ${{ env.python-version }}
106106

plugins/modules/netbox_custom_field.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@
3434
required: false
3535
type: list
3636
elements: raw
37+
object_types:
38+
description:
39+
- The content type(s) to apply this custom field to (NetBox 4.0+)
40+
required: false
41+
type: list
42+
elements: raw
43+
version_added: "3.19.0"
3744
type:
3845
description:
3946
- The type of custom field
@@ -227,6 +234,7 @@ def main():
227234
required=True,
228235
options=dict(
229236
content_types=dict(required=False, type="list", elements="raw"),
237+
object_types=dict(required=False, type="list", elements="raw"),
230238
type=dict(
231239
required=False,
232240
choices=[
@@ -279,7 +287,7 @@ def main():
279287
)
280288

281289
required_if = [
282-
("state", "present", ["content_types", "name"]),
290+
("state", "present", ["name"]),
283291
("state", "absent", ["name"]),
284292
]
285293

plugins/modules/netbox_custom_link.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@
4141
type: list
4242
elements: raw
4343
version_added: "3.10.0"
44+
object_types:
45+
description:
46+
- The object type(s) to apply this custom link to (NetBox 4.0+)
47+
required: false
48+
type: list
49+
elements: raw
50+
version_added: "3.19.0"
4451
name:
4552
description:
4653
- The name of the custom link
@@ -147,6 +154,7 @@ def main():
147154
options=dict(
148155
content_type=dict(required=False, type="raw"),
149156
content_types=dict(required=False, type="list", elements="raw"),
157+
object_types=dict(required=False, type="list", elements="raw"),
150158
name=dict(required=True, type="str"),
151159
link_text=dict(required=True, type="raw"),
152160
link_url=dict(required=True, type="raw"),
@@ -165,7 +173,7 @@ def main():
165173
("state", "absent", ["name"]),
166174
]
167175

168-
required_one_of = [("content_type", "content_types")]
176+
required_one_of = [("content_type", "content_types", "object_types")]
169177

170178
module = NetboxAnsibleModule(
171179
argument_spec=argument_spec,

plugins/modules/netbox_export_template.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,14 @@
4040
required: false
4141
type: list
4242
elements: raw
43-
version_added: "3.10.0"
43+
version_added: "3.10.0"
44+
object_types:
45+
description:
46+
- The object type to apply this export template to (NetBox 4.0+)
47+
required: false
48+
type: list
49+
elements: raw
50+
version_added: "3.10.0"
4451
name:
4552
description:
4653
- The name of the export template
@@ -84,7 +91,7 @@
8491
netbox_url: http://netbox.local
8592
netbox_token: thisIsMyToken
8693
data:
87-
content_types: ["dcim.device", "virtualization.virtualmachine"]
94+
object_types: ["dcim.device", "virtualization.virtualmachine"]
8895
name: /etc/hosts
8996
description: "Generate entries for /etc/hosts"
9097
as_attachment: true
@@ -144,6 +151,7 @@ def main():
144151
options=dict(
145152
content_type=dict(required=False, type="raw"),
146153
content_types=dict(required=False, type="list", elements="raw"),
154+
object_types=dict(required=False, type="list", elements="raw"),
147155
name=dict(required=True, type="str"),
148156
description=dict(required=False, type="str"),
149157
template_code=dict(required=True, type="raw"),
@@ -160,7 +168,7 @@ def main():
160168
("state", "absent", ["name"]),
161169
]
162170

163-
required_one_of = [["content_type", "content_types"]]
171+
required_one_of = [["content_type", "content_types", "object_types"]]
164172

165173
module = NetboxAnsibleModule(
166174
argument_spec=argument_spec,

tests/integration/targets/v4.0/tasks/netbox_custom_field.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
netbox_url: http://localhost:32768
1010
netbox_token: 0123456789abcdef0123456789abcdef01234567
1111
data:
12-
content_types:
12+
object_types:
1313
- "dcim.device"
1414
name: A_CustomField
1515
type: text
@@ -24,7 +24,7 @@
2424
- test_one['diff']['after']['state'] == "present"
2525
- test_one['custom_field']['name'] == "A_CustomField"
2626
- test_one['custom_field']['required'] == false
27-
- test_one['custom_field']['content_types'] == ["dcim.device"]
27+
- test_one['custom_field']['object_types'] == ["dcim.device"]
2828
- test_one['custom_field']['type'] == "text"
2929
- test_one['custom_field']['weight'] == 100
3030
- test_one['msg'] == "custom_field A_CustomField created"
@@ -34,7 +34,7 @@
3434
netbox_url: http://localhost:32768
3535
netbox_token: 0123456789abcdef0123456789abcdef01234567
3636
data:
37-
content_types:
37+
object_types:
3838
- "dcim.device"
3939
name: A_CustomField
4040
state: present
@@ -52,7 +52,7 @@
5252
netbox_url: http://localhost:32768
5353
netbox_token: 0123456789abcdef0123456789abcdef01234567
5454
data:
55-
content_types:
55+
object_types:
5656
- "dcim.device"
5757
name: "A_CustomField"
5858
description: "Added a description"
@@ -74,7 +74,7 @@
7474
netbox_url: http://localhost:32768
7575
netbox_token: 0123456789abcdef0123456789abcdef01234567
7676
data:
77-
content_types:
77+
object_types:
7878
- "virtualization.virtualmachine"
7979
name: "A_CustomField"
8080
description: "Added a description"
@@ -86,7 +86,7 @@
8686
assert:
8787
that:
8888
- test_four is changed
89-
- test_four['diff']['after']['content_types'] == ["virtualization.virtualmachine"]
89+
- test_four['diff']['after']['object_types'] == ["virtualization.virtualmachine"]
9090
- test_four['custom_field']['name'] == "A_CustomField"
9191
- test_four['msg'] == "custom_field A_CustomField updated"
9292

@@ -113,7 +113,7 @@
113113
# netbox_url: http://localhost:32768
114114
# netbox_token: 0123456789abcdef0123456789abcdef01234567
115115
# data:
116-
# content_types:
116+
# object_types:
117117
# - "dcim.device"
118118
# name: A_CustomField
119119
# type: text

tests/integration/targets/v4.0/tasks/netbox_custom_link.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
netbox_url: http://localhost:32768
1010
netbox_token: 0123456789abcdef0123456789abcdef01234567
1111
data:
12-
content_types:
12+
object_types:
1313
- "dcim.device"
1414
name: Custom Link
1515
link_text: Open Web management
@@ -24,7 +24,7 @@
2424
- test_one['diff']['before']['state'] == "absent"
2525
- test_one['diff']['after']['state'] == "present"
2626
- test_one['custom_link']['name'] == "Custom Link"
27-
- test_one['custom_link']['content_types'] == ["dcim.device"]
27+
- test_one['custom_link']['object_types'] == ["dcim.device"]
2828
- test_one['custom_link']['link_text'] == "Open Web management"
2929
- test_one['msg'] == "custom_link Custom Link created"
3030

@@ -33,7 +33,7 @@
3333
netbox_url: http://localhost:32768
3434
netbox_token: 0123456789abcdef0123456789abcdef01234567
3535
data:
36-
content_types:
36+
object_types:
3737
- "dcim.device"
3838
name: Custom Link
3939
link_text: Open Web management
@@ -53,7 +53,7 @@
5353
netbox_url: http://localhost:32768
5454
netbox_token: 0123456789abcdef0123456789abcdef01234567
5555
data:
56-
content_types:
56+
object_types:
5757
- "dcim.device"
5858
name: Custom Link
5959
link_text: Open Web management
@@ -75,7 +75,7 @@
7575
netbox_url: http://localhost:32768
7676
netbox_token: 0123456789abcdef0123456789abcdef01234567
7777
data:
78-
content_types:
78+
object_types:
7979
- "virtualization.virtualmachine"
8080
name: Custom Link
8181
link_text: Open Web management
@@ -87,7 +87,7 @@
8787
assert:
8888
that:
8989
- test_four is changed
90-
- test_four['diff']['after']['content_types'] == ["virtualization.virtualmachine"]
90+
- test_four['diff']['after']['object_types'] == ["virtualization.virtualmachine"]
9191
- test_four['custom_link']['name'] == "Custom Link"
9292
- test_four['msg'] == "custom_link Custom Link updated"
9393

@@ -96,7 +96,7 @@
9696
netbox_url: http://localhost:32768
9797
netbox_token: 0123456789abcdef0123456789abcdef01234567
9898
data:
99-
content_types:
99+
object_types:
100100
- "virtualization.virtualmachine"
101101
name: Custom Link
102102
link_text: Open Web management

tests/integration/targets/v4.0/tasks/netbox_export_template.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
netbox_url: http://localhost:32768
1010
netbox_token: 0123456789abcdef0123456789abcdef01234567
1111
data:
12-
content_types:
12+
object_types:
1313
- "dcim.device"
1414
name: Example Export Template
1515
description: Export Devices
@@ -25,7 +25,7 @@
2525
- test_one['diff']['before']['state'] == "absent"
2626
- test_one['diff']['after']['state'] == "present"
2727
- test_one['export_template']['name'] == "Example Export Template"
28-
- test_one['export_template']['content_types'] == ["dcim.device"]
28+
- test_one['export_template']['object_types'] == ["dcim.device"]
2929
- test_one['export_template']['description'] == "Export Devices"
3030
- test_one['msg'] == "export_template Example Export Template created"
3131

@@ -34,7 +34,7 @@
3434
netbox_url: http://localhost:32768
3535
netbox_token: 0123456789abcdef0123456789abcdef01234567
3636
data:
37-
content_types:
37+
object_types:
3838
- "dcim.device"
3939
name: Example Export Template
4040
description: Export Devices
@@ -55,7 +55,7 @@
5555
netbox_url: http://localhost:32768
5656
netbox_token: 0123456789abcdef0123456789abcdef01234567
5757
data:
58-
content_types:
58+
object_types:
5959
- "dcim.device"
6060
name: Example Export Template
6161
description: Export Devices
@@ -78,7 +78,7 @@
7878
netbox_url: http://localhost:32768
7979
netbox_token: 0123456789abcdef0123456789abcdef01234567
8080
data:
81-
content_types:
81+
object_types:
8282
- "virtualization.virtualmachine"
8383
name: Example Export Template
8484
description: Export Devices
@@ -91,7 +91,7 @@
9191
assert:
9292
that:
9393
- test_four is changed
94-
- test_four['diff']['after']['content_types'] == ["virtualization.virtualmachine"]
94+
- test_four['diff']['after']['object_types'] == ["virtualization.virtualmachine"]
9595
- test_four['export_template']['name'] == "Example Export Template"
9696
- test_four['msg'] == "export_template Example Export Template updated"
9797

@@ -100,7 +100,7 @@
100100
netbox_url: http://localhost:32768
101101
netbox_token: 0123456789abcdef0123456789abcdef01234567
102102
data:
103-
content_types:
103+
object_types:
104104
- "virtualization.virtualmachine"
105105
name: Example Export Template
106106
description: Export Devices

0 commit comments

Comments
 (0)