90c3337316
* Added win_partition module * Fixes sanity tests * Requested changes minus changes in partition_size * Removed trailing whitespace and fixed docstring * Changes to parititon_size to allow variable units * Stricter regex for partition_size
261 lines
7.4 KiB
YAML
261 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
|