Skip to content

Commit 3f1e4a5

Browse files
authored
Fix for mapping between power_outlet_template and power_port_template (#444)
1 parent 5cf6f49 commit 3f1e4a5

File tree

4 files changed

+41
-13
lines changed

4 files changed

+41
-13
lines changed

plugins/module_utils/netbox_utils.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
parent_tenant_group="slug",
109109
power_panel="name",
110110
power_port="name",
111+
power_port_template="name",
111112
platform="slug",
112113
prefix_role="slug",
113114
primary_ip="address",
@@ -174,6 +175,7 @@
174175
"parent_tenant_group": "tenant_groups",
175176
"power_panel": "power_panels",
176177
"power_port": "power_ports",
178+
"power_port_template": "power_port_templates",
177179
"prefix_role": "roles",
178180
"primary_ip": "ip_addresses",
179181
"primary_ip4": "ip_addresses",
@@ -392,6 +394,7 @@
392394
"cluster_group": "group",
393395
"parent_region": "parent",
394396
"parent_tenant_group": "parent",
397+
"power_port_template": "power_port",
395398
"prefix_role": "role",
396399
"rack_group": "group",
397400
"rack_role": "role",
@@ -752,6 +755,25 @@ def _build_query_params(
752755
}
753756
query_dict.update(rear_port_template)
754757

758+
elif parent == "power_port" and self.endpoint == "power_outlets":
759+
if isinstance(module_data.get("power_port"), str):
760+
power_port = {
761+
"device_id": module_data.get("device"),
762+
"name": module_data.get("power_port"),
763+
}
764+
query_dict.update(power_port)
765+
766+
elif (
767+
parent == "power_port_template"
768+
and self.endpoint == "power_outlet_templates"
769+
):
770+
if isinstance(module_data.get("power_port_template"), str):
771+
power_port_template = {
772+
"devicetype_id": module_data.get("device_type"),
773+
"name": module_data.get("power_port_template"),
774+
}
775+
query_dict.update(power_port_template)
776+
755777
elif "_template" in parent:
756778
if query_dict.get("device_type"):
757779
query_dict["devicetype_id"] = query_dict.pop("device_type")
@@ -878,7 +900,13 @@ def _find_ids(self, data, user_query_params):
878900
else:
879901
self._handle_errors(msg="%s not found" % (list_item))
880902
else:
881-
if k in ["lag", "rear_port", "rear_port_template"]:
903+
if k in [
904+
"lag",
905+
"rear_port",
906+
"rear_port_template",
907+
"power_port",
908+
"power_port_template",
909+
]:
882910
query_params = self._build_query_params(
883911
k, data, user_query_params
884912
)

plugins/modules/netbox_power_outlet_template.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@
115115
- hdot-cx
116116
required: false
117117
type: str
118-
power_port:
118+
power_port_template:
119119
description:
120-
- The attached power port
120+
- The attached power port template
121121
required: false
122122
type: raw
123123
feed_leg:
@@ -157,33 +157,33 @@
157157
gather_facts: False
158158
159159
tasks:
160-
- name: Create power port within Netbox with only required information
160+
- name: Create power outlet template within Netbox with only required information
161161
netbox_power_outlet_template:
162162
netbox_url: http://netbox.local
163163
netbox_token: thisIsMyToken
164164
data:
165-
name: Test Power Outlet
165+
name: Test Power Outlet Template
166166
device_type: Test Device Type
167167
state: present
168168
169-
- name: Update power port with other fields
169+
- name: Update power outlet template with other fields
170170
netbox_power_outlet_template:
171171
netbox_url: http://netbox.local
172172
netbox_token: thisIsMyToken
173173
data:
174-
name: Test Power Outlet
174+
name: Test Power Outlet Template
175175
device_type: Test Device Type
176176
type: iec-60320-c6
177-
power_port: Test Power Port
177+
power_port_template: Test Power Port Template
178178
feed_leg: A
179179
state: present
180180
181-
- name: Delete power port within netbox
181+
- name: Delete power outlet template within netbox
182182
netbox_power_outlet_template:
183183
netbox_url: http://netbox.local
184184
netbox_token: thisIsMyToken
185185
data:
186-
name: Test Power Outlet
186+
name: Test Power Outlet Template
187187
device_type: Test Device Type
188188
state: absent
189189
"""
@@ -283,7 +283,7 @@ def main():
283283
],
284284
type="str",
285285
),
286-
power_port=dict(required=False, type="raw"),
286+
power_port_template=dict(required=False, type="raw"),
287287
feed_leg=dict(required=False, choices=["A", "B", "C"], type="str"),
288288
),
289289
),

tests/integration/targets/latest/tasks/netbox_power_outlet_template.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
name: Power Outlet Template
5454
device_type: Device Type Power Tests
5555
type: ita-e
56-
power_port: Power Port
56+
power_port_template: Power Port Template
5757
feed_leg: B
5858
state: present
5959
register: test_three

tests/integration/targets/v2.9/tasks/netbox_power_outlet_template.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
name: Power Outlet Template
5454
device_type: Device Type Power Tests
5555
type: ita-e
56-
power_port: Power Port
56+
power_port_template: Power Port Template
5757
feed_leg: B
5858
state: present
5959
register: test_three

0 commit comments

Comments
 (0)