Skip to content

Commit 17366d2

Browse files
committed
Allow adding power port templates to modules
1 parent 78f4c86 commit 17366d2

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

plugins/lookup/nb_lookup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ def get_endpoint(netbox, term):
212212
"module-bays": {"endpoint": netbox.dcim.module_bays},
213213
"module-bay-templates": {"endpoint": netbox.dcim.module_bay_templates},
214214
"module-bay-types": {"endpoint": netbox.dcim.module_bay_types},
215+
"module-types": {"endpoint": netbox.dcim.module_types},
215216
"modules": {"endpoint": netbox.dcim.modules},
216217
"object-changes": {"endpoint": netbox.extras.object_changes},
217218
"permissions": {"endpoint": netbox.users.permissions},

plugins/module_utils/netbox_utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@
239239
"lag": "interfaces",
240240
"manufacturer": "manufacturers",
241241
"master": "devices",
242+
"module_type": "module_types",
242243
"nat_inside": "ip_addresses",
243244
"nat_outside": "ip_addresses",
244245
"platform": "platforms",

plugins/modules/netbox_power_port_template.py

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@
3434
device_type:
3535
description:
3636
- The device type the power port is attached to
37-
required: true
37+
- Either I(device_type) or I(module_type) are required
38+
type: raw
39+
module_type:
40+
description:
41+
- The module type the power port is attached to
42+
- Either I(device_type) or I(module_type) are required
3843
type: raw
3944
name:
4045
description:
@@ -175,6 +180,17 @@
175180
device_type: Test Device Type
176181
state: present
177182
183+
- name: Create power port for a module type within NetBox
184+
netbox.netbox.netbox_power_port_template:
185+
netbox_url: http://netbox.local
186+
netbox_token: thisIsMyToken
187+
data:
188+
name: Test Power Port Template
189+
module_type: Test Module Type
190+
type: iec-60320-c6
191+
maximum_draw: 750
192+
state: present
193+
178194
- name: Update power port with other fields
179195
netbox.netbox.netbox_power_port_template:
180196
netbox_url: http://netbox.local
@@ -230,7 +246,8 @@ def main():
230246
type="dict",
231247
required=True,
232248
options=dict(
233-
device_type=dict(required=True, type="raw"),
249+
device_type=dict(required=False, type="raw"),
250+
module_type=dict(required=False, type="raw"),
234251
name=dict(required=True, type="str"),
235252
type=dict(
236253
required=False,
@@ -346,12 +363,17 @@ def main():
346363
)
347364

348365
required_if = [
349-
("state", "present", ["device_type", "name"]),
350-
("state", "absent", ["device_type", "name"]),
366+
("state", "present", ["name"]),
367+
("state", "absent", ["name"]),
351368
]
352369

370+
required_one_of = [('device_type', 'module_type'),]
371+
353372
module = NetboxAnsibleModule(
354-
argument_spec=argument_spec, supports_check_mode=True, required_if=required_if
373+
argument_spec=argument_spec,
374+
supports_check_mode=True,
375+
required_if=required_if,
376+
required_one_of=required_one_of
355377
)
356378

357379
netbox_power_port_template = NetboxDcimModule(module, NB_POWER_PORT_TEMPLATES)

0 commit comments

Comments
 (0)