1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/integration/targets/proxmox_pool/tasks/main.yml
Sergei Antipov 16abb96bd8
New Proxmox VE modules to handle pools and their membership (#6604)
* New Proxmox VE modules to handle pools and their membership

* Fix pep8 linting errors

* Fix pep8 and compatibility errors

* Add required fields in the documentation

* Typo fix

* Fix pylint errors

* Fix the last one error

* Address review comments

* Fix linting error

* Add integration tests playbook

* Add assert for the diff mode

* Address review comments

* Fix typo in the word

* Fail for non-empty pool even in check_mode
2023-06-05 21:17:31 +02:00

220 lines
7.3 KiB
YAML

####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# Copyright (c) 2023, Sergei Antipov <greendayonfire at gmail.com>
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- name: Proxmox VE pool and pool membership management
tags: ["pool"]
block:
- name: Make sure poolid parameter is not missing
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
ignore_errors: true
register: result
- assert:
that:
- result is failed
- "'missing required arguments: poolid' in result.msg"
- name: Create pool (Check)
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
check_mode: true
register: result
- assert:
that:
- result is changed
- result is success
- name: Create pool
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
register: result
- assert:
that:
- result is changed
- result is success
- result.poolid == "{{ poolid }}"
- name: Delete pool (Check)
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
state: absent
check_mode: true
register: result
- assert:
that:
- result is changed
- result is success
- name: Delete non-existing pool should do nothing
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "non-existing-poolid"
state: absent
register: result
- assert:
that:
- result is not changed
- result is success
- name: Deletion of non-empty pool fails
block:
- name: Add storage into pool
proxmox_pool_member:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
member: "{{ member }}"
type: "{{ member_type }}"
diff: true
register: result
- assert:
that:
- result is changed
- result is success
- "'{{ member }}' in result.diff.after.members"
- name: Add non-existing storage into pool should fail
proxmox_pool_member:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
member: "non-existing-storage"
type: "{{ member_type }}"
ignore_errors: true
register: result
- assert:
that:
- result is failed
- "'Storage non-existing-storage doesn\\'t exist in the cluster' in result.msg"
- name: Delete non-empty pool
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
state: absent
ignore_errors: true
register: result
- assert:
that:
- result is failed
- "'Please remove members from pool first.' in result.msg"
- name: Delete storage from the pool
proxmox_pool_member:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
member: "{{ member }}"
type: "{{ member_type }}"
state: absent
register: result
- assert:
that:
- result is success
- result is changed
rescue:
- name: Delete storage from the pool if it is added
proxmox_pool_member:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
member: "{{ member }}"
type: "{{ member_type }}"
state: absent
ignore_errors: true
- name: Delete pool
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
state: absent
register: result
- assert:
that:
- result is changed
- result is success
- result.poolid == "{{ poolid }}"
rescue:
- name: Delete test pool if it is created
proxmox_pool:
api_host: "{{ api_host }}"
api_user: "{{ user }}@{{ domain }}"
api_password: "{{ api_password | default(omit) }}"
api_token_id: "{{ api_token_id | default(omit) }}"
api_token_secret: "{{ api_token_secret | default(omit) }}"
validate_certs: "{{ validate_certs }}"
poolid: "{{ poolid }}"
state: absent
ignore_errors: true