From 345e39e1b1188e966a4d37f2c14b1f2dc3746937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Moser?= Date: Fri, 9 Dec 2016 07:03:18 +0100 Subject: [PATCH] cloudstack: cs_instance: fix userdata not up to date (#18942) Fixes unnecessary VM restart. VM userdata is currently not returned by the API listVirtualMachine and task will always be marked as changed in has_changed(), which will result in an unnecessary VM restart if force=true. Reported by @Mayeu --- lib/ansible/modules/cloud/cloudstack/cs_instance.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/ansible/modules/cloud/cloudstack/cs_instance.py b/lib/ansible/modules/cloud/cloudstack/cs_instance.py index 58c98724853..2ac53e1ecd4 100644 --- a/lib/ansible/modules/cloud/cloudstack/cs_instance.py +++ b/lib/ansible/modules/cloud/cloudstack/cs_instance.py @@ -533,6 +533,10 @@ class AnsibleCloudStackInstance(AnsibleCloudStack): if not vpc_id and self.is_vm_in_vpc(vm=v): continue if instance_name.lower() in [ v['name'].lower(), v['displayname'].lower(), v['id'] ]: + # Query the user data if we need to + if 'userdata' not in v and self.get_user_data() is not None: + res = self.cs.getVirtualMachineUserData(virtualmachineid=v['id']) + v['userdata'] = res['virtualmachineuserdata'].get('userdata',"") self.instance = v break return self.instance