Skip to content

Commit 815ce23

Browse files
Enhancement: Inventory - Implement status (#359)
1 parent 542fc38 commit 815ce23

14 files changed

+545
-1
lines changed

plugins/inventory/nb_inventory.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,7 @@ def group_extractors(self):
376376
"disk": self.extract_disk,
377377
"memory": self.extract_memory,
378378
"vcpus": self.extract_vcpus,
379+
"status": self.extract_status,
379380
"config_context": self.extract_config_context,
380381
"local_context_data": self.extract_local_context_data,
381382
"custom_fields": self.extract_custom_fields,
@@ -461,6 +462,9 @@ def extract_disk(self, host):
461462
def extract_vcpus(self, host):
462463
return host.get("vcpus")
463464

465+
def extract_status(self, host):
466+
return host.get("status")
467+
464468
def extract_memory(self, host):
465469
return host.get("memory")
466470

plugins/modules/netbox_virtual_machine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def main():
235235
status=dict(required=False, type="raw"),
236236
tags=dict(required=False, type="list"),
237237
custom_fields=dict(required=False, type="dict"),
238-
local_context_data=dict(required=False, type="dict")
238+
local_context_data=dict(required=False, type="dict"),
239239
),
240240
),
241241
)

tests/integration/targets/inventory-latest/files/test-inventory-legacy.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
"sites": [
2727
"test-site2"
2828
],
29+
"status": {
30+
"label": "Active",
31+
"value": "active"
32+
},
2933
"tags": []
3034
},
3135
"Test Nexus One": {
@@ -71,6 +75,10 @@
7175
"sites": [
7276
"test-site"
7377
],
78+
"status": {
79+
"label": "Active",
80+
"value": "active"
81+
},
7482
"tags": []
7583
},
7684
"Test VM With Spaces": {
@@ -102,6 +110,10 @@
102110
}
103111
}
104112
],
113+
"status": {
114+
"label": "Active",
115+
"value": "active"
116+
},
105117
"tags": []
106118
},
107119
"TestDeviceR1": {
@@ -134,6 +146,10 @@
134146
"sites": [
135147
"test-site"
136148
],
149+
"status": {
150+
"label": "Active",
151+
"value": "active"
152+
},
137153
"tags": []
138154
},
139155
"test100": {
@@ -213,6 +229,10 @@
213229
"sites": [
214230
"test-site"
215231
],
232+
"status": {
233+
"label": "Active",
234+
"value": "active"
235+
},
216236
"tags": []
217237
},
218238
"test100-vm": {
@@ -232,6 +252,10 @@
232252
"sites": [
233253
"test-site"
234254
],
255+
"status": {
256+
"label": "Active",
257+
"value": "active"
258+
},
235259
"tags": []
236260
},
237261
"test101-vm": {
@@ -251,6 +275,10 @@
251275
"sites": [
252276
"test-site"
253277
],
278+
"status": {
279+
"label": "Active",
280+
"value": "active"
281+
},
254282
"tags": []
255283
},
256284
"test102-vm": {
@@ -270,6 +298,10 @@
270298
"sites": [
271299
"test-site"
272300
],
301+
"status": {
302+
"label": "Active",
303+
"value": "active"
304+
},
273305
"tags": []
274306
},
275307
"test103-vm": {
@@ -289,6 +321,10 @@
289321
"sites": [
290322
"test-site"
291323
],
324+
"status": {
325+
"label": "Active",
326+
"value": "active"
327+
},
292328
"tags": []
293329
},
294330
"test104-vm": {
@@ -301,6 +337,10 @@
301337
],
302338
"regions": [],
303339
"services": [],
340+
"status": {
341+
"label": "Active",
342+
"value": "active"
343+
},
304344
"tags": []
305345
}
306346
}

tests/integration/targets/inventory-latest/files/test-inventory-options-flatten.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@
3737
"role": "core-switch",
3838
"services": [],
3939
"site": "test-site2",
40+
"status": {
41+
"label": "Active",
42+
"value": "active"
43+
},
4044
"tags": []
4145
},
4246
"Test Nexus One": {
@@ -176,6 +180,10 @@
176180
}
177181
],
178182
"site": "test-site",
183+
"status": {
184+
"label": "Active",
185+
"value": "active"
186+
},
179187
"tags": []
180188
},
181189
"Test VM With Spaces": {
@@ -239,6 +247,10 @@
239247
}
240248
}
241249
],
250+
"status": {
251+
"label": "Active",
252+
"value": "active"
253+
},
242254
"tags": []
243255
},
244256
"TestDeviceR1": {
@@ -258,6 +270,10 @@
258270
"role": "core-switch",
259271
"services": [],
260272
"site": "test-site",
273+
"status": {
274+
"label": "Active",
275+
"value": "active"
276+
},
261277
"tags": []
262278
},
263279
"test100": {
@@ -430,6 +446,10 @@
430446
}
431447
],
432448
"site": "test-site",
449+
"status": {
450+
"label": "Active",
451+
"value": "active"
452+
},
433453
"tags": []
434454
},
435455
"test100-vm": {
@@ -530,6 +550,10 @@
530550
],
531551
"services": [],
532552
"site": "test-site",
553+
"status": {
554+
"label": "Active",
555+
"value": "active"
556+
},
533557
"tags": []
534558
},
535559
"test101-vm": {
@@ -630,6 +654,10 @@
630654
],
631655
"services": [],
632656
"site": "test-site",
657+
"status": {
658+
"label": "Active",
659+
"value": "active"
660+
},
633661
"tags": []
634662
},
635663
"test102-vm": {
@@ -644,6 +672,10 @@
644672
],
645673
"services": [],
646674
"site": "test-site",
675+
"status": {
676+
"label": "Active",
677+
"value": "active"
678+
},
647679
"tags": []
648680
},
649681
"test103-vm": {
@@ -658,6 +690,10 @@
658690
],
659691
"services": [],
660692
"site": "test-site",
693+
"status": {
694+
"label": "Active",
695+
"value": "active"
696+
},
661697
"tags": []
662698
},
663699
"test104-vm": {
@@ -667,6 +703,10 @@
667703
"is_virtual": true,
668704
"regions": [],
669705
"services": [],
706+
"status": {
707+
"label": "Active",
708+
"value": "active"
709+
},
670710
"tags": []
671711
}
672712
}

tests/integration/targets/inventory-latest/files/test-inventory-options.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
"regions": [],
3939
"role": "core-switch",
4040
"site": "test-site2",
41+
"status": {
42+
"label": "Active",
43+
"value": "active"
44+
},
4145
"tags": []
4246
},
4347
"Test Nexus One": {
@@ -52,6 +56,10 @@
5256
],
5357
"role": "core-switch",
5458
"site": "test-site",
59+
"status": {
60+
"label": "Active",
61+
"value": "active"
62+
},
5563
"tags": []
5664
},
5765
"Test VM With Spaces": {
@@ -60,6 +68,10 @@
6068
"custom_fields": {},
6169
"is_virtual": true,
6270
"regions": [],
71+
"status": {
72+
"label": "Active",
73+
"value": "active"
74+
},
6375
"tags": []
6476
},
6577
"TestDeviceR1": {
@@ -80,6 +92,10 @@
8092
],
8193
"role": "core-switch",
8294
"site": "test-site",
95+
"status": {
96+
"label": "Active",
97+
"value": "active"
98+
},
8399
"tags": []
84100
},
85101
"test100": {
@@ -99,6 +115,10 @@
99115
],
100116
"role": "core-switch",
101117
"site": "test-site",
118+
"status": {
119+
"label": "Active",
120+
"value": "active"
121+
},
102122
"tags": []
103123
},
104124
"test100-vm": {
@@ -112,6 +132,10 @@
112132
"parent-region"
113133
],
114134
"site": "test-site",
135+
"status": {
136+
"label": "Active",
137+
"value": "active"
138+
},
115139
"tags": []
116140
},
117141
"test101-vm": {
@@ -125,6 +149,10 @@
125149
"parent-region"
126150
],
127151
"site": "test-site",
152+
"status": {
153+
"label": "Active",
154+
"value": "active"
155+
},
128156
"tags": []
129157
},
130158
"test102-vm": {
@@ -138,6 +166,10 @@
138166
"parent-region"
139167
],
140168
"site": "test-site",
169+
"status": {
170+
"label": "Active",
171+
"value": "active"
172+
},
141173
"tags": []
142174
},
143175
"test103-vm": {
@@ -151,6 +183,10 @@
151183
"parent-region"
152184
],
153185
"site": "test-site",
186+
"status": {
187+
"label": "Active",
188+
"value": "active"
189+
},
154190
"tags": []
155191
},
156192
"test104-vm": {
@@ -159,6 +195,10 @@
159195
"custom_fields": {},
160196
"is_virtual": true,
161197
"regions": [],
198+
"status": {
199+
"label": "Active",
200+
"value": "active"
201+
},
162202
"tags": []
163203
}
164204
}

0 commit comments

Comments
 (0)