From 9c79de2e1eeee604f874a7a328d1ab4105681204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ne=C4=8Das?= Date: Mon, 9 Dec 2019 11:09:33 +0100 Subject: [PATCH] ovirt_vm: dont try to update template when already created from clone (#65317) --- lib/ansible/modules/cloud/ovirt/ovirt_vm.py | 47 +++++++++++---------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/lib/ansible/modules/cloud/ovirt/ovirt_vm.py b/lib/ansible/modules/cloud/ovirt/ovirt_vm.py index e528cf1a5c..543aea2758 100644 --- a/lib/ansible/modules/cloud/ovirt/ovirt_vm.py +++ b/lib/ansible/modules/cloud/ovirt/ovirt_vm.py @@ -1301,30 +1301,31 @@ class VmsModule(BaseModule): """ template = None templates_service = self._connection.system_service().templates_service() - if self.param('template'): - clusters_service = self._connection.system_service().clusters_service() - cluster = search_by_name(clusters_service, self.param('cluster')) - data_center = self._connection.follow_link(cluster.data_center) - templates = templates_service.list( - search='name=%s and datacenter=%s' % (self.param('template'), data_center.name) - ) - if self.param('template_version'): - templates = [ - t for t in templates - if t.version.version_number == self.param('template_version') - ] - if not templates: - raise ValueError( - "Template with name '%s' and version '%s' in data center '%s' was not found'" % ( - self.param('template'), - self.param('template_version'), - data_center.name - ) + if self._is_new: + if self.param('template'): + clusters_service = self._connection.system_service().clusters_service() + cluster = search_by_name(clusters_service, self.param('cluster')) + data_center = self._connection.follow_link(cluster.data_center) + templates = templates_service.list( + search='name=%s and datacenter=%s' % (self.param('template'), data_center.name) ) - template = sorted(templates, key=lambda t: t.version.version_number, reverse=True)[0] - elif self._is_new: - # If template isn't specified and VM is about to be created specify default template: - template = templates_service.template_service('00000000-0000-0000-0000-000000000000').get() + if self.param('template_version'): + templates = [ + t for t in templates + if t.version.version_number == self.param('template_version') + ] + if not templates: + raise ValueError( + "Template with name '%s' and version '%s' in data center '%s' was not found'" % ( + self.param('template'), + self.param('template_version'), + data_center.name + ) + ) + template = sorted(templates, key=lambda t: t.version.version_number, reverse=True)[0] + else: + # If template isn't specified and VM is about to be created specify default template: + template = templates_service.template_service('00000000-0000-0000-0000-000000000000').get() return template