New Module: LXD Projects (#4521)

* add lxd_project module

* documentation improvement and version_added entry

* improve documentation

* use os.path.expanduser

* exclude from use-argspec-type-path test

* improve documentation
This commit is contained in:
Raymond Chang 2022-04-26 04:20:54 +08:00 committed by GitHub
commit 1d3506490f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 601 additions and 0 deletions

View file

@ -0,0 +1 @@
unsupported

View file

@ -0,0 +1,140 @@
####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
- name: Clean up test project
lxd_project:
name: ansible-test-project
state: absent
- name: Clean up test project
lxd_project:
name: ansible-test-project-renamed
state: absent
- name: Create test project
lxd_project:
name: ansible-test-project
config:
features.images: "false"
features.networks: "true"
features.profiles: "true"
limits.cpu: "3"
state: present
register: results
- name: Check project has been created correctly
assert:
that:
- results is changed
- results.actions is defined
- "'create' in results.actions"
- name: Create test project again with merge_project set to true
lxd_project:
name: ansible-test-project
merge_project: true
config:
features.images: "false"
features.networks: "true"
features.profiles: "true"
limits.cpu: "3"
state: present
register: results
- name: Check state is not changed
assert:
that:
- results is not changed
- "{{ results.actions | length }} == 0"
- name: Create test project again with merge_project set to false
lxd_project:
name: ansible-test-project
merge_project: false
config:
features.images: "false"
features.networks: "true"
features.profiles: "true"
limits.cpu: "3"
state: present
register: results
- name: Check state is not changed
assert:
that:
- results is changed
- "'apply_projects_configs' in results.actions"
- name: Update project test => update description
lxd_project:
name: ansible-test-project
merge_project: false
description: "ansible test project"
config:
features.images: "false"
features.networks: "true"
features.profiles: "true"
limits.cpu: "3"
state: present
register: results
- name: Check state is changed
assert:
that:
- results is changed
- "'apply_projects_configs' in results.actions"
- name: Update project test => update project config
lxd_project:
name: ansible-test-project
merge_project: false
description: "ansible test project"
config:
features.images: "false"
features.networks: "true"
features.profiles: "true"
limits.cpu: "4"
state: present
register: results
- name: Check state is changed
assert:
that:
- results is changed
- "'apply_projects_configs' in results.actions"
- name: Rename project test
lxd_project:
name: ansible-test-project
new_name: ansible-test-project-renamed
merge_project: true
description: "ansible test project"
config:
features.images: "false"
features.networks: "true"
features.profiles: "true"
limits.cpu: "4"
state: present
register: results
- name: Check state is changed
assert:
that:
- results is changed
- "'rename' in results.actions"
- name: Clean up test project
lxd_project:
name: ansible-test-project-renamed
state: absent
register: results
- name: Check project is deleted
assert:
that:
- results is changed
- "'delete' in results.actions"

View file

@ -7,6 +7,7 @@
plugins/module_utils/cloud.py pylint:bad-option-value # a pylint test that is disabled was modified over time
plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path
plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/cloud/lxd/lxd_project.py use-argspec-type-path # expanduser() applied to constants
plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice
plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed
plugins/modules/cloud/rackspace/rax_files.py validate-modules:parameter-state-invalid-choice

View file

@ -6,6 +6,7 @@
.azure-pipelines/scripts/publish-codecov.py metaclass-boilerplate
plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path
plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/cloud/lxd/lxd_project.py use-argspec-type-path # expanduser() applied to constants
plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice
plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed
plugins/modules/cloud/rackspace/rax_files.py validate-modules:parameter-state-invalid-choice

View file

@ -1,6 +1,7 @@
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path
plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/cloud/lxd/lxd_project.py use-argspec-type-path # expanduser() applied to constants
plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice
plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed
plugins/modules/cloud/rackspace/rax_files.py validate-modules:parameter-state-invalid-choice

View file

@ -1,6 +1,7 @@
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path
plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/cloud/lxd/lxd_project.py use-argspec-type-path # expanduser() applied to constants
plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice
plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed
plugins/modules/cloud/rackspace/rax_files.py validate-modules:parameter-state-invalid-choice

View file

@ -1,6 +1,7 @@
.azure-pipelines/scripts/publish-codecov.py replace-urlopen
plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path
plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/cloud/lxd/lxd_project.py use-argspec-type-path # expanduser() applied to constants
plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice
plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed
plugins/modules/cloud/rackspace/rax_files.py validate-modules:parameter-state-invalid-choice

View file

@ -7,6 +7,7 @@
plugins/module_utils/cloud.py pylint:bad-option-value # a pylint test that is disabled was modified over time
plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path
plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/cloud/lxd/lxd_project.py use-argspec-type-path # expanduser() applied to constants
plugins/modules/cloud/rackspace/rax.py use-argspec-type-path
plugins/modules/cloud/rackspace/rax_files_objects.py use-argspec-type-path
plugins/modules/cloud/rackspace/rax_scaling_group.py use-argspec-type-path # fix needed, expanduser() applied to dict values