Add inactive state for the images
Glance images can be deactivated ad reactivated with corresponding API calls. It might be useful for operators to be able to control these states through ansible modules as well. Instead of introduction of the new parameter we're adding new state for the image that is `inactive`. Change-Id: I0738ff564f81a31690872450a4731340ed6bbeb1
This commit is contained in:
parent
fef5e127d4
commit
8d9b8b9a35
7
changelogs/fragments/image_deactivate_reactivate.yml
Normal file
7
changelogs/fragments/image_deactivate_reactivate.yml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
minor_changes:
|
||||
- |
|
||||
openstack.cloud.image - Added new `inactive` option for the image `state`
|
||||
It will deactivate the image. Setting state `present` can re-activate it
|
||||
again for deactivated previously images.
|
@ -176,6 +176,34 @@
|
||||
- image is changed
|
||||
- image.image.name == 'ansible_image-changed'
|
||||
|
||||
- name: Deactivate raw image
|
||||
openstack.cloud.image:
|
||||
cloud: "{{ cloud }}"
|
||||
state: inactive
|
||||
id: "{{ image.image.id }}"
|
||||
name: 'ansible_image-changed'
|
||||
register: image
|
||||
|
||||
- name: Assert changed
|
||||
assert:
|
||||
that:
|
||||
- image is changed
|
||||
- image.image.status == 'deactivated'
|
||||
|
||||
- name: Reactivate raw image
|
||||
openstack.cloud.image:
|
||||
cloud: "{{ cloud }}"
|
||||
state: present
|
||||
id: "{{ image.image.id }}"
|
||||
name: 'ansible_image-changed'
|
||||
register: image
|
||||
|
||||
- name: Assert changed
|
||||
assert:
|
||||
that:
|
||||
- image is changed
|
||||
- image.image.status == 'active'
|
||||
|
||||
- name: Rename back raw image (defaults)
|
||||
openstack.cloud.image:
|
||||
cloud: "{{ cloud }}"
|
||||
|
@ -100,8 +100,8 @@ options:
|
||||
type: str
|
||||
state:
|
||||
description:
|
||||
- Should the resource be present or absent.
|
||||
choices: [present, absent]
|
||||
- Should the resource be present, absent or inactive.
|
||||
choices: [present, absent, inactive]
|
||||
default: present
|
||||
type: str
|
||||
tags:
|
||||
@ -153,7 +153,7 @@ EXAMPLES = r'''
|
||||
RETURN = r'''
|
||||
image:
|
||||
description: Dictionary describing the Glance image.
|
||||
returned: On success when I(state) is C(present).
|
||||
returned: On success when I(state) is C(present) or C(inactive).
|
||||
type: dict
|
||||
contains:
|
||||
id:
|
||||
@ -394,7 +394,7 @@ class ImageModule(OpenStackModule):
|
||||
owner_domain=dict(aliases=['project_domain']),
|
||||
properties=dict(type='dict', default={}),
|
||||
ramdisk=dict(),
|
||||
state=dict(default='present', choices=['absent', 'present']),
|
||||
state=dict(default='present', choices=['absent', 'present', 'inactive']),
|
||||
tags=dict(type='list', default=[], elements='str'),
|
||||
visibility=dict(choices=['public', 'private', 'shared', 'community']),
|
||||
volume=dict(),
|
||||
@ -510,6 +510,10 @@ class ImageModule(OpenStackModule):
|
||||
self.exit_json(changed=changed,
|
||||
image=self._return_value(image.id))
|
||||
|
||||
if image['status'] == 'deactivated':
|
||||
self.conn.image.reactivate_image(image)
|
||||
changed = True
|
||||
|
||||
update_payload = self._build_update(image)
|
||||
|
||||
if update_payload:
|
||||
@ -525,6 +529,20 @@ class ImageModule(OpenStackModule):
|
||||
wait=self.params['wait'],
|
||||
timeout=self.params['timeout'])
|
||||
changed = True
|
||||
|
||||
elif self.params['state'] == 'inactive' and image is not None:
|
||||
if image['status'] == 'active':
|
||||
self.conn.image.deactivate_image(image)
|
||||
changed = True
|
||||
|
||||
update_payload = self._build_update(image)
|
||||
|
||||
if update_payload:
|
||||
self.conn.image.update_image(image.id, **update_payload)
|
||||
changed = True
|
||||
|
||||
self.exit_json(changed=changed, image=self._return_value(image.id))
|
||||
|
||||
self.exit_json(changed=changed)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user