You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/win_partition/tasks/tests.yml

262 lines
7.4 KiB
YAML

---
- name: Since partition is not present, disk_number is required to create a new partition.
win_partition:
drive_letter: D
register: incorrect_attempt_1
ignore_errors: True
- assert:
that:
- incorrect_attempt_1 is failed
- '"Missing required parameter: disk_number" in incorrect_attempt_1.msg'
- name: Added disk_number but size is still absent
win_partition:
drive_letter: D
disk_number: 0
register: incorrect_attempt_2
ignore_errors: True
- assert:
that:
- incorrect_attempt_2 is failed
- '"Missing required parameter: partition_size" in incorrect_attempt_2.msg'
- name: Added size but the disk we specified earlier doesn't have enough space
win_partition:
drive_letter: D
disk_number: 1
partition_size: 20 GiB
register: incorrect_attempt_3
ignore_errors: True
- assert:
that:
- incorrect_attempt_3 is failed
- '"Partition size is not supported by disk" in incorrect_attempt_3.msg'
- name: Create 1 gib partition using drive_letter and default (huge) mbr type (check mode)
win_partition:
drive_letter: D
state: present
partition_size: 1 GiB
disk_number: 1
active: True
register: create_small_part_check
check_mode: True
- name: Create 1 gib partition using drive_letter and default (huge) mbr type
win_partition:
drive_letter: D
state: present
partition_size: 1 GiB
disk_number: 1
active: True
register: create_small_part
- name: Create 1 gib partition using drive_letter and default (huge) mbr type (idempotence)
win_partition:
drive_letter: D
state: present
partition_size: 1 GiB
disk_number: 1
active: True
register: create_small_part_idempotence
- name: "Check if partition was created successfully"
win_shell: $AnsiPart = Get-Partition -DriveLetter D; "$($AnsiPart.DriveLetter),$($AnsiPart.Size),$($AnsiPart.IsActive),$($AnsiPart.MbrType)"
register: get_small_part
- assert:
that:
- create_small_part_check is changed
- create_small_part is changed
- create_small_part_idempotence is not changed
- get_small_part.stdout | trim == "D,1073741824,True,6"
- name: "Change drive letter, maximize partition size and set partition to read only (check mode)"
win_partition:
drive_letter: E
state: present
partition_size: -1
disk_number: 1
partition_number: 1
read_only: True
register: upgrade_small_part_check
check_mode: True
- name: "Change drive letter, maximize partition size and set partition to read only"
win_partition:
drive_letter: E
state: present
partition_size: -1
disk_number: 1
partition_number: 1
read_only: True
register: upgrade_small_part
- name: "Change drive letter, maximize partition size and set partition to read only (idempotence)"
win_partition:
drive_letter: E
state: present
partition_size: -1
disk_number: 1
partition_number: 1
read_only: True
register: upgrade_small_part_idempotence
- win_shell: $AnsiPart = Get-Partition -DriveLetter E; "$($AnsiPart.DriveLetter),$($AnsiPart.Size),$($AnsiPart.IsReadOnly)"
register: get_max_part
- name: Check if creation and updation were successful
assert:
that:
- upgrade_small_part_check is changed
- upgrade_small_part is changed
- upgrade_small_part_idempotence is not changed
- get_max_part.stdout | trim == "E,2096037888,True"
- name: "Changing size of a read only partition"
win_partition:
drive_letter: E
partition_size: 1 GiB
register: modify_read_only_partition
ignore_errors: True
- assert:
that:
- modify_read_only_partition is failed
- name: "Delete partition (check mode)"
win_partition:
disk_number: 1
partition_number: 1
state: absent
register: delete_partition_check
check_mode: True
- name: "Delete partition"
win_partition:
disk_number: 1
partition_number: 1
state: absent
register: delete_partition
- name: "Delete partition (idempotence)"
win_partition:
disk_number: 1
partition_number: 1
state: absent
register: delete_partition_idempotence
- name: "Confirm that the partition is absent"
win_shell: Get-Partition -DiskNumber 1 -PartitionNumber 1
register: confirm_partition_deletion
ignore_errors: True
- assert:
that:
- delete_partition_check is changed
- delete_partition is changed
- delete_partition_idempotence is not changed
- '"No matching MSFT_Partition objects found" in confirm_partition_deletion.stderr'
- name: "Create new partition without drive letter and ifs mbr type (check mode)"
win_partition:
disk_number: 1
partition_size: -1
mbr_type: IFS
offline: True
register: recreate_partition_check
check_mode: True
- name: "Create new partition without drive letter and ifs mbr type"
win_partition:
disk_number: 1
partition_size: -1
mbr_type: IFS
offline: True
register: recreate_partition
- name: "Create new partition without drive letter and ifs mbr type (idempotence failure)" # Disk is full now; no idempotence without drive letters
win_partition:
disk_number: 1
partition_size: -1
mbr_type: IFS
offline: True
register: recreate_partition_idempotence_failure
ignore_errors: True
- name: "Confirm that new partition is created with maximum size, is offline and is IFS"
win_shell: $AnsiPart = Get-Partition -DiskNumber 1 -PartitionNumber 1; "$($AnsiPart.Size),$($AnsiPart.IsOffline),$($AnsiPart.MbrType)"
register: confirm_recreate_partition
- assert:
that:
- recreate_partition_check is changed
- recreate_partition is changed
- recreate_partition_idempotence_failure is failed
- confirm_recreate_partition.stdout | trim == "2096037888,True,7"
- name: "Adding a drive letter to our partition should bring it back online (check mode)"
win_partition:
drive_letter: D
disk_number: 1
partition_number: 1
register: add_drive_letter_check
ignore_errors: True
check_mode: True
- name: "Adding a drive letter to our partition should bring it back online"
win_partition:
drive_letter: D
disk_number: 1
partition_number: 1
register: add_drive_letter
ignore_errors: True
- name: "Adding a drive letter to our partition should bring it back online (idempotence)"
win_partition:
drive_letter: D
disk_number: 1
partition_number: 1
register: add_drive_letter_idempotence
ignore_errors: True
- name: "Confirm that drive is back online"
win_shell: $AnsiPart = Get-Partition -DiskNumber 1 -PartitionNumber 1; "$($AnsiPart.DriveLetter),$($AnsiPart.IsOffline)"
register: confirm_add_drive_letter
ignore_errors: True
- assert:
that:
- add_drive_letter_check is changed
- add_drive_letter is changed
- add_drive_letter_idempotence is not changed
- confirm_add_drive_letter.stdout | trim == "D,False"
- name: "Remove partition again (check mode)"
win_partition:
drive_letter: D
state: absent
register: delete_partition_again_check
check_mode: True
- name: "Remove partition again"
win_partition:
drive_letter: D
state: absent
register: delete_partition_again
- name: "Remove partition again (idempotence)"
win_partition:
drive_letter: D
state: absent
register: delete_partition_again_idempotence
- assert:
that:
- delete_partition_again_check is changed
- delete_partition_again is changed
- delete_partition_again_idempotence is not changed