119
119
description:
120
120
- Whether the offering is meant to be used for VPC or not.
121
121
type: bool
122
+ tags:
123
+ description:
124
+ - List of tags. Tags are a list of dictionaries having keys I(key) and I(value).
125
+ - "To delete all tags, set an empty list e.g. I(tags: [])."
126
+ type: list
127
+ elements: dict
128
+ aliases: [ tag ]
129
+ version_added: 2.2.0
122
130
extends_documentation_fragment:
123
131
- ngine_io.cloudstack.cloudstack
124
132
'''
213
221
returned: success
214
222
type: bool
215
223
sample: false
224
+ tags:
225
+ description: List of resource tags associated with the network offering.
226
+ returned: success
227
+ type: list
228
+ sample: '[ { "key": "foo", "value": "bar" } ]'
229
+ version_added: 2.2.0
216
230
'''
217
231
218
232
from ansible .module_utils .basic import AnsibleModule
@@ -270,13 +284,17 @@ def get_network_offering(self):
270
284
271
285
return self .network_offering
272
286
273
- def create_or_update (self ):
287
+ def present (self ):
274
288
network_offering = self .get_network_offering ()
275
289
276
290
if not network_offering :
277
291
network_offering = self .create_network_offering ()
278
292
279
- return self .update_network_offering (network_offering = network_offering )
293
+ if network_offering :
294
+ network_offering = self .ensure_tags (resource = network_offering , resource_type = 'NetworkOffering' )
295
+ network_offering = self .update_network_offering (network_offering = network_offering )
296
+
297
+ return network_offering
280
298
281
299
def create_network_offering (self ):
282
300
network_offering = None
@@ -320,7 +338,7 @@ def create_network_offering(self):
320
338
321
339
return network_offering
322
340
323
- def delete_network_offering (self ):
341
+ def absent (self ):
324
342
network_offering = self .get_network_offering ()
325
343
326
344
if network_offering :
@@ -331,9 +349,6 @@ def delete_network_offering(self):
331
349
return network_offering
332
350
333
351
def update_network_offering (self , network_offering ):
334
- if not network_offering :
335
- return network_offering
336
-
337
352
args = {
338
353
'id' : network_offering ['id' ],
339
354
'state' : self .module .params .get ('state' ),
@@ -397,6 +412,7 @@ def main():
397
412
specify_ip_ranges = dict (type = 'bool' ),
398
413
specify_vlan = dict (type = 'bool' ),
399
414
for_vpc = dict (type = 'bool' ),
415
+ tags = dict (type = 'list' , elements = 'dict' , aliases = ['tag' ]),
400
416
))
401
417
402
418
module = AnsibleModule (
@@ -408,10 +424,10 @@ def main():
408
424
acs_network_offering = AnsibleCloudStackNetworkOffering (module )
409
425
410
426
state = module .params .get ('state' )
411
- if state in [ ' absent' ] :
412
- network_offering = acs_network_offering .delete_network_offering ()
427
+ if state == " absent" :
428
+ network_offering = acs_network_offering .absent ()
413
429
else :
414
- network_offering = acs_network_offering .create_or_update ()
430
+ network_offering = acs_network_offering .present ()
415
431
416
432
result = acs_network_offering .get_result (network_offering )
417
433
0 commit comments