Skip to content

Commit

Permalink
[Integration][omevv_baseline_profile] - Create, Modify and Delete
Browse files Browse the repository at this point in the history
  • Loading branch information
rajshekarp87 committed Nov 13, 2024
1 parent ab23bbc commit bf850fe
Show file tree
Hide file tree
Showing 8 changed files with 371 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
testcase: '[^_].*'
test_items: []
218 changes: 218 additions & 0 deletions tests/integration/targets/omevv_baseline_profile/files/ansible_doc.txt
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'
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
dependencies:
- prepare_omevv_registration
23 changes: 23 additions & 0 deletions tests/integration/targets/omevv_baseline_profile/tasks/main.yaml
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
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 }}"
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 tests/integration/targets/omevv_baseline_profile/tests/create.yaml
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 }}"
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---

0 comments on commit bf850fe

Please sign in to comment.