backport of ovirt_vm template clone check (#65702)

* backport of ovirt_vm template clone check

* update change log

* update change log 2
pull/66383/head
Martin Nečas 5 years ago committed by Matt Clay
parent 73238a5dc0
commit 508ebf295b

@ -0,0 +1,2 @@
bugfixes:
- "When cloning vm from the template it assigned Blank template to it and when rerun playbook it failed."

@ -1271,30 +1271,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

Loading…
Cancel
Save