From bf850feb2f0f4c3bf0ba0ad48d19712f582d4ef4 Mon Sep 17 00:00:00 2001 From: Rajshekar P Date: Wed, 13 Nov 2024 17:32:14 +0530 Subject: [PATCH 1/3] [Integration][omevv_baseline_profile] - Create, Modify and Delete --- .../omevv_baseline_profile/defaults/main.yaml | 3 + .../files/ansible_doc.txt | 218 ++++++++++++++++++ .../omevv_baseline_profile/meta/main.yaml | 3 + .../omevv_baseline_profile/tasks/main.yaml | 23 ++ .../omevv_baseline_profile/tests/_cleanup.yml | 15 ++ .../tests/ansible_doc.yaml | 22 ++ .../omevv_baseline_profile/tests/create.yaml | 86 +++++++ .../omevv_baseline_profile/vars/main.yaml | 1 + 8 files changed, 371 insertions(+) create mode 100644 tests/integration/targets/omevv_baseline_profile/defaults/main.yaml create mode 100644 tests/integration/targets/omevv_baseline_profile/files/ansible_doc.txt create mode 100644 tests/integration/targets/omevv_baseline_profile/meta/main.yaml create mode 100644 tests/integration/targets/omevv_baseline_profile/tasks/main.yaml create mode 100644 tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml create mode 100644 tests/integration/targets/omevv_baseline_profile/tests/ansible_doc.yaml create mode 100644 tests/integration/targets/omevv_baseline_profile/tests/create.yaml create mode 100644 tests/integration/targets/omevv_baseline_profile/vars/main.yaml diff --git a/tests/integration/targets/omevv_baseline_profile/defaults/main.yaml b/tests/integration/targets/omevv_baseline_profile/defaults/main.yaml new file mode 100644 index 000000000..852a6bee3 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: '[^_].*' +test_items: [] diff --git a/tests/integration/targets/omevv_baseline_profile/files/ansible_doc.txt b/tests/integration/targets/omevv_baseline_profile/files/ansible_doc.txt new file mode 100644 index 000000000..35d57dbe4 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/files/ansible_doc.txt @@ -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' diff --git a/tests/integration/targets/omevv_baseline_profile/meta/main.yaml b/tests/integration/targets/omevv_baseline_profile/meta/main.yaml new file mode 100644 index 000000000..f77b5cfb2 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/meta/main.yaml @@ -0,0 +1,3 @@ +--- +dependencies: + - prepare_omevv_registration diff --git a/tests/integration/targets/omevv_baseline_profile/tasks/main.yaml b/tests/integration/targets/omevv_baseline_profile/tasks/main.yaml new file mode 100644 index 000000000..49e57ca34 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/tasks/main.yaml @@ -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 diff --git a/tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml b/tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml new file mode 100644 index 000000000..302d4f12a --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml @@ -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 }}" diff --git a/tests/integration/targets/omevv_baseline_profile/tests/ansible_doc.yaml b/tests/integration/targets/omevv_baseline_profile/tests/ansible_doc.yaml new file mode 100644 index 000000000..1c8e6baf8 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/tests/ansible_doc.yaml @@ -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 diff --git a/tests/integration/targets/omevv_baseline_profile/tests/create.yaml b/tests/integration/targets/omevv_baseline_profile/tests/create.yaml new file mode 100644 index 000000000..fde41da75 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/tests/create.yaml @@ -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 }}" diff --git a/tests/integration/targets/omevv_baseline_profile/vars/main.yaml b/tests/integration/targets/omevv_baseline_profile/vars/main.yaml new file mode 100644 index 000000000..ed97d539c --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/vars/main.yaml @@ -0,0 +1 @@ +--- From 8bb7f4a446ef39b2725ab4acd4139773c385462c Mon Sep 17 00:00:00 2001 From: Rajshekar P Date: Wed, 13 Nov 2024 21:17:47 +0530 Subject: [PATCH 2/3] Added few more validation --- .../omevv_baseline_profile/tests/_cleanup.yml | 33 ++++++++++- .../tests/_helper_create.yml | 26 ++++++++ .../tests/_verify_baseline.yml | 20 +++++++ .../omevv_baseline_profile/tests/create.yaml | 59 +++++++++++++++---- 4 files changed, 122 insertions(+), 16 deletions(-) create mode 100644 tests/integration/targets/omevv_baseline_profile/tests/_helper_create.yml create mode 100644 tests/integration/targets/omevv_baseline_profile/tests/_verify_baseline.yml diff --git a/tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml b/tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml index 302d4f12a..03b10f693 100644 --- a/tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml +++ b/tests/integration/targets/omevv_baseline_profile/tests/_cleanup.yml @@ -1,10 +1,30 @@ --- - block: - - name: Delete RAID volume + - name: Delete baseline profile dellemc.openmanage.omevv_baseline_profile: state: absent - name: "{{ baseline_profile_name }}" - register: result_delete_baseline + name: OMAM_Baseline_Profile + register: delete_baseline_profile + + - name: Verify task status - Delete baseline profile + ansible.builtin.assert: + that: + - delete_baseline_profile.changed + - 'delete_baseline_profile.msg == "Successfully deleted the OMEVV + baseline profile."' + + - name: Delete Repository profile + dellemc.openmanage.omevv_baseline_profile: + state: absent + name: OMAM_Firm_Repo + register: delete_firm_repo_profile + + - name: Verify task status - Delete baseline profile + ansible.builtin.assert: + that: + - delete_firm_repo_profile.changed + - 'delete_firm_repo_profile.msg == "Successfully deleted the OMEVV + firmware repository profile."' module_defaults: dellemc.openmanage.omevv_baseline_profile: @@ -13,3 +33,10 @@ vcenter_username: "{{ vcenter_username }}" vcenter_password: "{{ vcenter_password }}" vcenter_uuid: "{{ uuid }}" + + dellemc.openmanage.omevv_firmware_repository_profile: + validate_certs: "{{ validate_certs }}" + hostname: "{{ hostname | ansible.utils.ipwrap }}" + vcenter_username: "{{ vcenter_username }}" + vcenter_password: "{{ vcenter_password }}" + vcenter_uuid: "{{ uuid }}" diff --git a/tests/integration/targets/omevv_baseline_profile/tests/_helper_create.yml b/tests/integration/targets/omevv_baseline_profile/tests/_helper_create.yml new file mode 100644 index 000000000..0071cd1bd --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/tests/_helper_create.yml @@ -0,0 +1,26 @@ +--- +- block: + - name: Create firmware repository profile + dellemc.openmanage.omevv_firmware_repository_profile: + name: "OMAM_Firm_Repo" + description: "Firmware repository profile created by OMAM" + state: present + catalog_path: "http://100.96.37.71/myrepo/automation/omevv_baseline_profile_catalog.xml" + protocol_type: HTTP + register: firm_repo + + - name: Assertion for creating firmware repository profile - Normal Mode + ansible.builtin.assert: + that: + - firm_repo.changed is true + - firm_repo.msg == "Successfully created the OMEVV firmware repository + profile." + - firm_repo.profile_info.status == "Success" + + module_defaults: + dellemc.openmanage.omevv_firmware_repository_profile: + validate_certs: "{{ validate_certs }}" + hostname: "{{ hostname | ansible.utils.ipwrap }}" + vcenter_username: "{{ vcenter_username }}" + vcenter_password: "{{ vcenter_password }}" + vcenter_uuid: "{{ uuid }}" diff --git a/tests/integration/targets/omevv_baseline_profile/tests/_verify_baseline.yml b/tests/integration/targets/omevv_baseline_profile/tests/_verify_baseline.yml new file mode 100644 index 000000000..cd15e5fe4 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/tests/_verify_baseline.yml @@ -0,0 +1,20 @@ +# Fetch volume details from iDRAC +--- +- block: + - name: Retrieve Baseline information + dellemc.openmanage.omevv_baseline_profile_info: + name: OMAM_Baseline_Profile + register: baseline_info + + - name: Verify task status - Retrieve Baseline information + ansible.builtin.assert: + that: + - baseline_info.baseline_profile_info == normal_result_baseline.profile_info + + module_defaults: + dellemc.openmanage.omevv_baseline_profile_info: + validate_certs: "{{ validate_certs }}" + hostname: "{{ hostname | ansible.utils.ipwrap }}" + vcenter_username: "{{ vcenter_username }}" + vcenter_password: "{{ vcenter_password }}" + vcenter_uuid: "{{ uuid }}" diff --git a/tests/integration/targets/omevv_baseline_profile/tests/create.yaml b/tests/integration/targets/omevv_baseline_profile/tests/create.yaml index fde41da75..0427d5e4a 100644 --- a/tests/integration/targets/omevv_baseline_profile/tests/create.yaml +++ b/tests/integration/targets/omevv_baseline_profile/tests/create.yaml @@ -12,14 +12,17 @@ hostname is undefined or vcenter_username is undefined or vcenter_password is undefined +- name: Set prerequisite + ansible.builtin.include_tasks: _helper_create.yml + - 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}}" + name: OMAM_Baseline_Profile + repository_profile: OMAM_Firm_Repo + cluster: Raj-Cluster-1 days: - sunday - wednesday @@ -34,31 +37,35 @@ - cm_result_baseline.changed - 'cm_result_baseline.msg == "Changes found to be applied."' - - name: Create a baseline profile with single cluster (Diff mode) + - name: Create a baseline profile with single cluster (Check and Diff mode) dellemc.openmanage.omevv_baseline_profile: <<: *bp_single_cluster - register: dm_result_baseline + check_mode: true + diff: true + register: cm_dm_result_baseline - name: Verify task status - Create a baseline profile with single - cluster (Normal mode) + cluster (Check and Diff mode - Changes expected) ansible.builtin.assert: that: - - dm_result_baseline.changed - - 'dm_result_baseline.msg == "Successfully created the baseline - profile."' + - cm_dm_result_baseline.changed + - 'cm_dm_result_baseline.msg == "Changes found to be applied."' + - cm_dm_result_baseline.diff.before | length == 0 + - cm_dm_result_baseline.diff.after | length > 1 - name: Create a baseline profile with single cluster (Normal mode) dellemc.openmanage.omevv_baseline_profile: <<: *bp_single_cluster - register: result_baseline + register: normal_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."' + - normal_result_baseline.changed + - 'normal_result_baseline.msg == "Successfully created OMEVV the + baseline profile."' + - normal_result_baseline.profile_info - name: Create a baseline profile with single cluster (Idempotence) dellemc.openmanage.omevv_baseline_profile: @@ -73,6 +80,32 @@ - 'idempotence_result_baseline.msg == "No changes found to be applied."' + - name: Verify baseline details + ansible.builtin.include_tasks: _verify_baseline.yml + + - name: Delete baseline profile created in previous task + ansible.builtin.include_tasks: _cleanup.yml + + - name: Create a baseline profile with single cluster (Normal and Diff mode) + dellemc.openmanage.omevv_baseline_profile: + <<: *bp_single_cluster + diff: true + register: normal_diff_result_baseline + + - name: Verify task status - Create a baseline profile with single + cluster (Normal and Diff mode) + ansible.builtin.assert: + that: + - normal_diff_result_baseline.changed + - 'normal_diff_result_baseline.msg == "Successfully created OMEVV the + baseline profile."' + - normal_diff_result_baseline.profile_info + - normal_diff_result_baseline.before | length == 0 + - normal_diff_result_baseline.after | length > 1 + + - name: Verify baseline details + ansible.builtin.include_tasks: _verify_baseline.yml + always: - name: Post clean up ansible.builtin.include_tasks: _cleanup.yml From c97b3acacb96aee13ffbc1dae78d1b7ac4508fd0 Mon Sep 17 00:00:00 2001 From: Rajshekar P Date: Thu, 14 Nov 2024 11:27:54 +0530 Subject: [PATCH 3/3] Added multiple cluster test case --- .../tests/create_multiple_cluster.yaml | 120 ++++++++++++++++++ ...create.yaml => create_single_cluster.yaml} | 0 2 files changed, 120 insertions(+) create mode 100644 tests/integration/targets/omevv_baseline_profile/tests/create_multiple_cluster.yaml rename tests/integration/targets/omevv_baseline_profile/tests/{create.yaml => create_single_cluster.yaml} (100%) diff --git a/tests/integration/targets/omevv_baseline_profile/tests/create_multiple_cluster.yaml b/tests/integration/targets/omevv_baseline_profile/tests/create_multiple_cluster.yaml new file mode 100644 index 000000000..f639c1e38 --- /dev/null +++ b/tests/integration/targets/omevv_baseline_profile/tests/create_multiple_cluster.yaml @@ -0,0 +1,120 @@ +# 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 + +- name: Set prerequisite + ansible.builtin.include_tasks: _helper_create.yml + +- block: + - name: Create a baseline profile with multiple + cluster (Check mode - Changes expected) + dellemc.openmanage.omevv_baseline_profile: &bp_multiple_cluster + state: present + name: OMAM_Baseline_Profile + repository_profile: OMAM_Firm_Repo + cluster: + - Raj-Cluster-1 + - Raj-Cluster-2 + days: + - all + time: "00:00" + register: cm_result_baseline + check_mode: true + + - name: Verify task status - Create a baseline profile with multiple + 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 multiple cluster (Check and Diff mode) + dellemc.openmanage.omevv_baseline_profile: + <<: *bp_multiple_cluster + check_mode: true + diff: true + register: cm_dm_result_baseline + + - name: Verify task status - Create a baseline profile with multiple + cluster (Check and Diff mode - Changes expected) + ansible.builtin.assert: + that: + - cm_dm_result_baseline.changed + - 'cm_dm_result_baseline.msg == "Changes found to be applied."' + - cm_dm_result_baseline.diff.before | length == 0 + - cm_dm_result_baseline.diff.after | length > 1 + + - name: Create a baseline profile with multiple cluster (Normal mode) + dellemc.openmanage.omevv_baseline_profile: + <<: *bp_multiple_cluster + register: normal_result_baseline + + - name: Verify task status - Create a baseline profile with multiple + cluster (Normal mode) + ansible.builtin.assert: + that: + - normal_result_baseline.changed + - 'normal_result_baseline.msg == "Successfully created OMEVV the + baseline profile."' + - normal_result_baseline.profile_info + + - name: Verify baseline details + ansible.builtin.include_tasks: _verify_baseline.yml + + - name: Create a baseline profile with multiple cluster (Idempotence) + dellemc.openmanage.omevv_baseline_profile: + <<: *bp_multiple_cluster + register: idempotence_result_baseline + + - name: Verify task status - Create a baseline profile with multiple + cluster (Idempotence) + ansible.builtin.assert: + that: + - not idempotence_result_baseline.changed + - 'idempotence_result_baseline.msg == "No changes found to be + applied."' + + - name: Delete baseline profile created in previous task + ansible.builtin.include_tasks: _cleanup.yml + + - name: Create a baseline profile with multiple cluster (Normal and Diff mode) + dellemc.openmanage.omevv_baseline_profile: + <<: *bp_multiple_cluster + diff: true + register: normal_diff_result_baseline + + - name: Verify task status - Create a baseline profile with multiple + cluster (Normal and Diff mode) + ansible.builtin.assert: + that: + - normal_diff_result_baseline.changed + - 'normal_diff_result_baseline.msg == "Successfully created OMEVV the + baseline profile."' + - normal_diff_result_baseline.profile_info + - normal_diff_result_baseline.before | length == 0 + - normal_diff_result_baseline.after | length > 1 + + - name: Verify baseline details + ansible.builtin.include_tasks: _verify_baseline.yml + + 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 }}" diff --git a/tests/integration/targets/omevv_baseline_profile/tests/create.yaml b/tests/integration/targets/omevv_baseline_profile/tests/create_single_cluster.yaml similarity index 100% rename from tests/integration/targets/omevv_baseline_profile/tests/create.yaml rename to tests/integration/targets/omevv_baseline_profile/tests/create_single_cluster.yaml