--- - hosts: localhost gather_facts: True # Required for ansible_date_time tasks: - name: POSITIVE test -> Create pool {{ auto_prefix }}pool infini_pool: name: "{{ auto_prefix }}pool" size: 1TB vsize: 1TB state: present user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" - name: POSITIVE test -> Create thin volume {{ auto_prefix }}vol under pool {{ auto_prefix }}pool infini_vol: name: "{{ auto_prefix }}vol" size: 1GB pool: "{{ auto_prefix }}pool" state: present user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" - name: POSITIVE test -> Create snapshot {{ auto_prefix }}vol_snap from volume {{ auto_prefix }}vol infini_vol: name: "{{ auto_prefix }}vol_snap" state: present volume_type: snapshot parent_volume_name: "{{ auto_prefix }}vol" user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" - name: DEBUG test -> Find the current date-time (WARNING - Time marks when the playbook gathered facts) debug: var=ansible_date_time.iso8601_micro - name: POSITIVE test -> Create and lock for 2 minutes snapshot {{ auto_prefix }}vol_snap_locked from volume {{ auto_prefix }}vol infini_vol: name: "{{ auto_prefix }}vol_snap_locked" state: present volume_type: snapshot parent_volume_name: "{{ auto_prefix }}vol" snapshot_lock_expires_at: "{{ ansible_date_time.iso8601_micro | to_datetime(fmt) | infinidat.infinibox.delta_time(minutes=2) }}" user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" vars: fmt: "%Y-%m-%dT%H:%M:%S.%fZ" - name: POSITIVE test -> Extend lock to 3 minutes for {{ auto_prefix }}vol_snap_locked without refresh infini_vol: name: "{{ auto_prefix }}vol_snap_locked" state: present volume_type: snapshot parent_volume_name: "{{ auto_prefix }}vol" snapshot_lock_expires_at: "{{ ansible_date_time.iso8601_micro | to_datetime(fmt) | infinidat.infinibox.delta_time(minutes=3) }}" snapshot_lock_only: true user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" vars: fmt: "%Y-%m-%dT%H:%M:%S.%fZ" - name: NEGATIVE test -> Attempt to create snapshot locked for 31 days, 31 days exceeds 30 day maximum lock time enforced by infini_vol module (not API) infini_vol: name: "{{ auto_prefix }}vol_snap_locked_too_long" state: present volume_type: snapshot parent_volume_name: "{{ auto_prefix }}vol" snapshot_lock_expires_at: "{{ ansible_date_time.iso8601_micro | to_datetime(fmt) | infinidat.infinibox.delta_time(days=31) }}" user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" register: result failed_when: "not result.msg | regex_search('snapshot_lock_expires_at exceeds.*days in the future')" vars: fmt: "%Y-%m-%dT%H:%M:%S.%fZ" - name: NEGATIVE test -> Attempt to remove locked snapshot {{ auto_prefix }}vol_snap_locked infini_vol: name: "{{ auto_prefix }}vol_snap_locked" state: absent user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" register: result failed_when: "'Cannot delete snapshot. Locked' not in result.msg" - name: POSITIVE test -> Wait for lock on {{ auto_prefix }}vol_snap_locked to expire pause: seconds: 181 prompt: Waiting for {{ auto_prefix }}vol_snap_locked to expire - name: POSITIVE test -> Lock expired. Remove snapshot {{ auto_prefix }}vol_snap_locked. infini_vol: name: "{{ auto_prefix }}vol_snap_locked" state: absent user: "{{ user }}" password: "{{ password }}" system: "{{ system }}"