-
Notifications
You must be signed in to change notification settings - Fork 165
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Integration][omevv_baseline_profile] - Create, Modify and Delete
- Loading branch information
1 parent
ab23bbc
commit bf850fe
Showing
8 changed files
with
371 additions
and
0 deletions.
There are no files selected for viewing
3 changes: 3 additions & 0 deletions
3
tests/integration/targets/omevv_baseline_profile/defaults/main.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
--- | ||
testcase: '[^_].*' | ||
test_items: [] |
218 changes: 218 additions & 0 deletions
218
tests/integration/targets/omevv_baseline_profile/files/ansible_doc.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,218 @@ | ||
- ' This module allows you to create, modify, or delete an' | ||
- ' OpenManage Enterprise Integration for VMware Center (OMEVV)' | ||
- ' baseline profile.' | ||
- '' | ||
- 'ADDED IN: version 9.9.0 of dellemc.openmanage' | ||
- '' | ||
- 'OPTIONS (= is mandatory):' | ||
- '' | ||
- '- ca_path' | ||
- ' The Privacy Enhanced Mail (PEM) file that contains a CA' | ||
- ' certificate to be used for the validation.' | ||
- ' default: null' | ||
- ' type: path' | ||
- '' | ||
- '- cluster' | ||
- ' List of cluster(s) for baseline profile creation.' | ||
- ' This parameter is required when `state'' is `present'' and while' | ||
- ' creating a new profile.' | ||
- ' default: null' | ||
- ' elements: str' | ||
- ' type: list' | ||
- '' | ||
- '- days' | ||
- ' Required days of a week on when the job must run.' | ||
- ' This is required when `state'' is `present'' and while creating' | ||
- ' a new profile.' | ||
- ' choices: [sunday, monday, tuesday, wednesday, thursday, friday, saturday, | ||
all]' | ||
- ' default: null' | ||
- ' elements: str' | ||
- ' type: list' | ||
- '' | ||
- '- description' | ||
- ' Description of OMEVV baseline profile.' | ||
- ' default: null' | ||
- ' type: str' | ||
- '' | ||
- = hostname | ||
- ' IP address or hostname of the OpenManage Enterprise Modular.' | ||
- ' type: str' | ||
- '' | ||
- '- job_wait' | ||
- ' Whether to wait till completion of the job.' | ||
- ' default: true' | ||
- ' type: bool' | ||
- '' | ||
- '- job_wait_timeout' | ||
- ' The maximum wait time of `job_wait'' in seconds. The job is' | ||
- ' tracked only for this duration.' | ||
- ' This is applicable when `job_wait'' is `true''.' | ||
- ' default: 1200' | ||
- ' type: int' | ||
- '' | ||
- = name | ||
- ' Name of the OMEVV baseline profile.' | ||
- ' This parameter is required for modification operation when' | ||
- ' `state'' is `absent''.' | ||
- ' type: str' | ||
- '' | ||
- '- port' | ||
- ' OpenManage Enterprise HTTPS port.' | ||
- ' default: 443' | ||
- ' type: int' | ||
- '' | ||
- '- repository_profile' | ||
- ' Repository profile for baseline creation.' | ||
- ' This is required when `state'' is `present'' and while creating' | ||
- ' a new profile.' | ||
- ' default: null' | ||
- ' type: str' | ||
- '' | ||
- '- state' | ||
- ' `present'' creates an OMEVV baseline profile or modifies an' | ||
- ' existing profile if the profile with the same name already' | ||
- ' exists.' | ||
- ' `absent'' deletes the OMEVV baseline profile.' | ||
- ' `repository_profile'', `cluster'', `days'' and `time'' is required' | ||
- ' when creating a new baseline profile.' | ||
- ' Either `profile_name'' or `profile_id'' is required when `state''' | ||
- ' is `absent''.' | ||
- ' choices: [present, absent]' | ||
- ' default: present' | ||
- ' type: str' | ||
- '' | ||
- '- time' | ||
- ' Time at when the job must run, and is 24 hours format.' | ||
- ' The format must be HH:MM.' | ||
- ' This is required when `state'' is `present'' and while creating' | ||
- ' a new profile.' | ||
- ' default: null' | ||
- ' type: str' | ||
- '' | ||
- '- timeout' | ||
- ' The socket level timeout in seconds.' | ||
- ' default: 30' | ||
- ' type: int' | ||
- '' | ||
- '- validate_certs' | ||
- ' Whether to check SSL certificate. - If `true'', the SSL' | ||
- ' certificates will be validated. - If `false'', the SSL' | ||
- ' certificates will not be validated.' | ||
- ' default: true' | ||
- ' type: bool' | ||
- '' | ||
- '- vcenter_password' | ||
- ' Password for OpenManage Enterprise Integration for VMware' | ||
- ' vCenter (OMEVV).' | ||
- ' If the password is not provided, then the environment variable' | ||
- ' `OMEVV_VCENTER_PASSWORD'' is used.' | ||
- ' Example: export OMEVV_VCENTER_PASSWORD=password' | ||
- ' default: null' | ||
- ' type: str' | ||
- '' | ||
- '- vcenter_username' | ||
- ' Username for OpenManage Enterprise Integration for VMware' | ||
- ' vCenter (OMEVV).' | ||
- ' If the username is not provided, then the environment variable' | ||
- ' `OMEVV_VCENTER_USERNAME'' is used.' | ||
- ' Example: export OMEVV_VCENTER_USERNAME=username' | ||
- ' default: null' | ||
- ' type: str' | ||
- '' | ||
- '- vcenter_uuid' | ||
- ' Universally Unique Identifier (UUID) of vCenter.' | ||
- ' vCenter UUID details can be retrieved using' | ||
- ' [dellemc.openmanage.omevv_vcenter_info] module.' | ||
- ' If UUID is not provided, then the environment variable' | ||
- ' `OMEVV_VCENTER_UUID'' is used.' | ||
- ' Example: export OMEVV_VCENTER_UUID=uuid' | ||
- ' default: null' | ||
- ' type: str' | ||
- '' | ||
- '' | ||
- 'ATTRIBUTES:' | ||
- '' | ||
- ' check_mode:' | ||
- ' description: Runs task to validate without performing action on the target | ||
machine.' | ||
- ' support: full' | ||
- ' diff_mode:' | ||
- ' description: Runs the task to report the changes that are made or the | ||
changes that' | ||
- ' must be applied.' | ||
- ' support: full' | ||
- '' | ||
- 'NOTES:' | ||
- ' * Run this module from a system that has direct access to' | ||
- ' Dell OpenManage Enterprise.' | ||
- '' | ||
- '' | ||
- 'REQUIREMENTS: python >= 3.9.6' | ||
- '' | ||
- 'AUTHOR: Saksham Nautiyal (@Saksham-Nautiyal)' | ||
- '' | ||
- 'EXAMPLES:' | ||
- '' | ||
- '---' | ||
- '- name: Create a baseline profile for multiple cluster' | ||
- ' dellemc.openmanage.omevv_baseline_profile:' | ||
- ' hostname: "192.168.0.1"' | ||
- ' vcenter_uuid: "xxxxx"' | ||
- ' vcenter_username: "username"' | ||
- ' vcenter_password: "password"' | ||
- ' ca_path: "path/to/ca_file"' | ||
- ' state: "present"' | ||
- ' name: "profile-1"' | ||
- ' repository_profile: "repository-profile"' | ||
- ' cluster:' | ||
- ' - "cluster-1"' | ||
- ' - "cluster-2"' | ||
- ' days:' | ||
- ' - "sunday"' | ||
- ' - "wednesday"' | ||
- ' time: "22:10"' | ||
- '' | ||
- '- name: Modify a baseline profile' | ||
- ' dellemc.openmanage.omevv_baseline_profile:' | ||
- ' hostname: "192.168.0.1"' | ||
- ' vcenter_uuid: "xxxxx"' | ||
- ' vcenter_username: "username"' | ||
- ' vcenter_password: "password"' | ||
- ' ca_path: "path/to/ca_file"' | ||
- ' state: "present"' | ||
- ' name: "profile-1"' | ||
- ' new_name: "profile-newname"' | ||
- ' repository_profile: "repository-profile"' | ||
- ' cluster:' | ||
- ' - "cluster-1"' | ||
- ' - "cluster-2"' | ||
- ' days:' | ||
- ' - "sunday"' | ||
- ' time: "05:00"' | ||
- '' | ||
- '- name: Delete a specific baseline profile' | ||
- ' dellemc.openmanage.omevv_baseline_profile:' | ||
- ' hostname: "192.168.0.1"' | ||
- ' vcenter_uuid: "xxxxx"' | ||
- ' vcenter_username: "username"' | ||
- ' vcenter_password: "password"' | ||
- ' ca_path: "path/to/ca_file"' | ||
- ' state: "absent"' | ||
- ' name: "profile-1"' | ||
- '' | ||
- '' | ||
- 'RETURN VALUES:' | ||
- '- error_info' | ||
- ' Details of the HTTP Error.' | ||
- ' returned: on HTTP error' | ||
- ' sample:' | ||
- ' errorCode: ''18001''' | ||
- ' message: Baseline profile with name Test already exists.' | ||
- ' type: dict' | ||
- '' | ||
- '- msg' | ||
- ' Status of the profile operation.' | ||
- ' returned: always' | ||
- ' sample: Successfully created the OMEVV baseline profile.' | ||
- ' type: str' |
3 changes: 3 additions & 0 deletions
3
tests/integration/targets/omevv_baseline_profile/meta/main.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
--- | ||
dependencies: | ||
- prepare_omevv_registration |
23 changes: 23 additions & 0 deletions
23
tests/integration/targets/omevv_baseline_profile/tasks/main.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
- name: Collect all test cases | ||
ansible.builtin.find: | ||
paths: '{{ role_path }}/tests' | ||
patterns: '{{ testcase }}.yaml' | ||
use_regex: true | ||
register: test_cases | ||
delegate_to: localhost | ||
|
||
- name: Set test_items | ||
ansible.builtin.set_fact: | ||
test_items: "{{ test_cases.files | map(attribute='path') | list }}" | ||
|
||
- name: Fail if no test cases are found as per pattern. | ||
ansible.builtin.fail: | ||
msg: "Could not find test cases to run!!!" | ||
when: not test_items|length > 0 | ||
|
||
- name: Run test case | ||
ansible.builtin.include_tasks: '{{ test_case_to_run }}' | ||
with_items: '{{ test_items }}' | ||
loop_control: | ||
loop_var: test_case_to_run |
15 changes: 15 additions & 0 deletions
15
tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- | ||
- block: | ||
- name: Delete RAID volume | ||
dellemc.openmanage.omevv_baseline_profile: | ||
state: absent | ||
name: "{{ baseline_profile_name }}" | ||
register: result_delete_baseline | ||
|
||
module_defaults: | ||
dellemc.openmanage.omevv_baseline_profile: | ||
validate_certs: "{{ validate_certs }}" | ||
hostname: "{{ hostname | ansible.utils.ipwrap }}" | ||
vcenter_username: "{{ vcenter_username }}" | ||
vcenter_password: "{{ vcenter_password }}" | ||
vcenter_uuid: "{{ uuid }}" |
22 changes: 22 additions & 0 deletions
22
tests/integration/targets/omevv_baseline_profile/tests/ansible_doc.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Dell OpenManage Ansible modules | ||
# Copyright (C) 2024 Dell Inc. or its subsidiaries. All Rights Reserved. | ||
|
||
# GNU General Public License v3.0+ (see COPYING or | ||
# https://www.gnu.org/licenses/gpl-3.0.txt) | ||
--- | ||
- block: | ||
- name: ansible-doc | ||
command: ansible-doc dellemc.openmanage.omevv_baseline_profile | ||
register: ansible_doc_hash | ||
|
||
- name: Get ansible-doc output | ||
local_action: copy content={{ansible_doc_hash.stdout_lines[2:] | | ||
to_nice_yaml }} dest={{ role_path }}/files/ansible_doc.txt | ||
register: ansible_doc | ||
check_mode: true | ||
diff: true | ||
|
||
- name: Verify if doc changed | ||
ansible.builtin.assert: | ||
that: not ansible_doc.changed | ||
run_once: true |
86 changes: 86 additions & 0 deletions
86
tests/integration/targets/omevv_baseline_profile/tests/create.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# Dell OpenManage Ansible modules | ||
# Copyright (C) 2024 Dell Inc. or its subsidiaries. All Rights Reserved. | ||
|
||
# GNU General Public License v3.0+ (see COPYING or | ||
# https://www.gnu.org/licenses/gpl-3.0.txt) | ||
--- | ||
- name: Test that we have an OME host, OME username and OME password | ||
ansible.builtin.fail: | ||
msg: "Please define the following variables: hostname, vcenter_username | ||
and vcenter_password." | ||
when: | ||
hostname is undefined or vcenter_username is undefined or vcenter_password | ||
is undefined | ||
|
||
- block: | ||
- name: Create a baseline profile with single | ||
cluster (Check mode - Changes expected) | ||
dellemc.openmanage.omevv_baseline_profile: &bp_single_cluster | ||
state: present | ||
name: profile-1 | ||
repository_profile: "{{ repository_profile_name }}" | ||
cluster: "{{ cluster_name}}" | ||
days: | ||
- sunday | ||
- wednesday | ||
time: "22:00" | ||
register: cm_result_baseline | ||
check_mode: true | ||
|
||
- name: Verify task status - Create a baseline profile with single | ||
cluster (Check mode - Changes expected) | ||
ansible.builtin.assert: | ||
that: | ||
- cm_result_baseline.changed | ||
- 'cm_result_baseline.msg == "Changes found to be applied."' | ||
|
||
- name: Create a baseline profile with single cluster (Diff mode) | ||
dellemc.openmanage.omevv_baseline_profile: | ||
<<: *bp_single_cluster | ||
register: dm_result_baseline | ||
|
||
- name: Verify task status - Create a baseline profile with single | ||
cluster (Normal mode) | ||
ansible.builtin.assert: | ||
that: | ||
- dm_result_baseline.changed | ||
- 'dm_result_baseline.msg == "Successfully created the baseline | ||
profile."' | ||
|
||
- name: Create a baseline profile with single cluster (Normal mode) | ||
dellemc.openmanage.omevv_baseline_profile: | ||
<<: *bp_single_cluster | ||
register: result_baseline | ||
|
||
- name: Verify task status - Create a baseline profile with single | ||
cluster (Normal mode) | ||
ansible.builtin.assert: | ||
that: | ||
- result_baseline.changed | ||
- 'result_baseline.msg == "Successfully created the baseline | ||
profile."' | ||
|
||
- name: Create a baseline profile with single cluster (Idempotence) | ||
dellemc.openmanage.omevv_baseline_profile: | ||
<<: *bp_single_cluster | ||
register: idempotence_result_baseline | ||
|
||
- name: Verify task status - Create a baseline profile with single | ||
cluster (Idempotence) | ||
ansible.builtin.assert: | ||
that: | ||
- not idempotence_result_baseline.changed | ||
- 'idempotence_result_baseline.msg == "No changes found to be | ||
applied."' | ||
|
||
always: | ||
- name: Post clean up | ||
ansible.builtin.include_tasks: _cleanup.yml | ||
|
||
module_defaults: | ||
dellemc.openmanage.omevv_baseline_profile: | ||
validate_certs: "{{ validate_certs }}" | ||
hostname: "{{ hostname | ansible.utils.ipwrap }}" | ||
vcenter_username: "{{ vcenter_username }}" | ||
vcenter_password: "{{ vcenter_password }}" | ||
vcenter_uuid: "{{ uuid }}" |
1 change: 1 addition & 0 deletions
1
tests/integration/targets/omevv_baseline_profile/vars/main.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
--- |