#  Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
---         
# Provisioning server with enterprise license where boot mode is UEFI, VD  present, firmware  updated,SNMP is already configured using iDRAC  
- name: OMNIA_1.1_iDRAC_TC_001    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
   
  collections:
    - dellemc.openmanage
    - community.general
  
  tasks:                 
    - name: Check login_vars file is encrypted
      command: cat "{{ login_vars_path }}"
      changed_when: false
      register: config_content
      tags: always
      
    - name: Decrpyt login_vars.yml
      command: >-
        ansible-vault decrypt {{ login_vars_path }}
        --vault-password-file {{ login_vars_vault_path }}
      changed_when: false
      when: "'$ANSIBLE_VAULT;' in config_content.stdout"
      tags: always

    - name: Include variable file login_vars.yml
      include_vars: "{{ login_vars_path }}"
      tags: always
       
    - name: Encypt login file
      command: >-
        ansible-vault encrypt {{ login_vars_path }}
        --vault-password-file {{ login_vars_vault_path }}
      changed_when: false
      tags: always
      
    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params1 }}"
      run_once: true
      tags: TC_001
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: 'Name="BootMode"' 
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_001 
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}" 
        line: "{{ sysprofile_regex1 }}"
      run_once: true
      tags: TC_001 
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ snmp_attr_name }}"
        line: "{{ snmp_regex1 }}"
      run_once: true
      tags: TC_001
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      run_once: true
      tags: TC_001     
        
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_001

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}" 
      tags: TC_001    
          
    - block:            
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_001,VERIFY_OMNIA_01
      
# Provisioning  server with enterprise license where boot mode is UEFI, VD  present, firmware not updated,SNMP is not already configured using iDRAC.
- name: OMNIA_1.1_iDRAC_TC_002    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
   
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params2 }}"
      run_once: true
      tags: TC_002
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_002  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}"  
        line: "{{ sysprofile_regex2 }}"
      run_once: true
      tags: TC_002  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex2 }}"
      run_once: true
      tags: TC_002

    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      run_once: true
      tags: TC_002
        
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_002

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_002 

# Provisioning server with enterprise license where boot mode is UEFI, VD not present, firmware not updated  using iDRAC  
- name: OMNIA_1.1_iDRAC_TC_003    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
   
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params3 }}"
      run_once: true
      tags: TC_003
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ bootmode_attr_name }}"
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_003  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ sysprofile_attr_name }}"  
        line: "{{ sysprofile_regex3 }}"
      run_once: true
      tags: TC_003  

    - name: Get iDRAC volume details
      idrac_system_info:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
      register: vd_status
      tags: TC_003
             
    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: vd_name
      ignore_errors: true
      when: vd_status.system_info.VirtualDisk[0].Name == vd_name
      tags: TC_003
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      run_once: true
      tags: TC_003      

    - name: Import SCP configuration in SCP file
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_003

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_003

# Provisioning server with enterprise license where boot mode is UEFI, VD not present, firmware   updated using iDRAC      
- name: OMNIA_1.1_iDRAC_TC_004    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml  
    
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params4 }}"
      run_once: true
      tags: TC_004
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_004  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}"  
        line: "{{ sysprofile_regex4 }}"
      run_once: true
      tags: TC_004  
        
    - name: Get iDRAC volume details
      idrac_system_info:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
      register: vd_status
      tags: TC_004
      
             
    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: "{{ vd_name }}"
      ignore_errors: true
      when: vd_status.system_info.VirtualDisk[0].Name == vd_name
      tags: TC_004
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      tags: TC_004      
        
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_004

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_004

# Provisioning server with enterprise license where boot mode is BIOS, VD  present, firmware  updated, using iDRAC     
- name: OMNIA_1.1_iDRAC_TC_005    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml  
    
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params3 }}"
      run_once: true
      tags: TC_005
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ bootmode_attr_name }}"
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_005  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ sysprofile_attr_name }}"  
        line: "{{ sysprofile_regex3 }}"
      run_once: true
      tags: TC_005  
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      run_once: true
      tags: TC_005      
        
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_005

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_005

# Provisioning server with enterprise license where boot mode is BIOS, VD  present, firmware not updated, using iDRAC      
- name: OMNIA_1.1_iDRAC_TC_006    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml   
   
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params2 }}"
      run_once: true
      tags: TC_006
        
    - name: Set boot mode in file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_006  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: 'Name="SysProfile"' 
        line: "{{ sysprofile_regex2 }}"
      run_once: true
      tags: TC_006  
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      run_once: true
      tags: TC_006      
        
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_006

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_006  
          
# Provisioning server with enterprise license where boot mode is BIOS, VD not present, firmware not updated and re-provision any server using iDRAC      
- name: OMNIA_1.1_iDRAC_TC_007    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml   
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params4 }}"
      run_once: true
      tags: TC_007
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_007  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}"
        line: "{{ sysprofile_regex4 }}"
      run_once: true
      tags: TC_007  
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      run_once: true
      tags: TC_007      

    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: "omnia_vd"
      ignore_errors: true
      tags: TC_007

    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_007
      
    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_007
            
# Provisioning server with enterprise license where boot mode is BIOS, VD not present, firmware   updated  using iDRAC
# Re-provision of all servers using iDRAC      
- name: OMNIA_1.1_iDRAC_TC_008    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params1 }}"
      run_once: true
      tags: TC_008
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}"
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_008  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}"
        line: "{{ sysprofile_regex1 }}"
      run_once: true
      tags: TC_008  
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: true
        datacenter_license: true
      run_once: true
      tags: TC_008      

    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: "omnia_vd"
      ignore_errors: true
      tags: TC_008
        
    - name: Import SCP configuration in file
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_008

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_008

# Provisioning server with basic license where boot mode is UEFI, VD  present, firmware  updated, SNMP is already configured using Cobbler       
- name: OMNIA_1.1_iDRAC_TC_009    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params4 }}"
      run_once: true
      tags: TC_009
        
    - name: Set Boot mode in file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_009  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}" 
        line: "{{ sysprofile_regex4 }}"
      run_once: true
      tags: TC_009  
        
    - name: Set SNMP configuration in file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_009

    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_009
              
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_009

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_009

# Provisioning server with basic license where boot mode is UEFI, VD  present, firmware not updated, SNMP is not configured using cobbler      
- name: OMNIA_1.1_iDRAC_TC_010    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params1 }}"
      run_once: true
      tags: TC_010
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_010  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}" 
        line: "{{ sysprofile_regex1 }}"
      run_once: true
      tags: TC_010  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_010

    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_010
              
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_010

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_010

# Provisioning server with basic license where boot mode is UEFI, VD not present, firmware not updated, using Cobbler     
- name: OMNIA_1.1_iDRAC_TC_011    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params4 }}"
      run_once: true
      tags: TC_011
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_011  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}" 
        line: "{{ sysprofile_regex4 }}"
      run_once: true
      tags: TC_011  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_011

    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: "omnia_vd"
      ignore_errors: true
      tags: TC_011

    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_011
        
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_011

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_011

# Provisioning server with basic license where boot mode is UEFI, VD not present, firmware   updated, PXE device is Enabled using Cobbler      
- name: OMNIA_1.1_iDRAC_TC_012    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params3 }}"
      run_once: true
      tags: TC_012
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex1 }}"
      run_once: true
      tags: TC_012  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}"
        line: "{{ sysprofile_regex3 }}"
      run_once: true
      tags: TC_012  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_012

    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: "omnia_vd"
      ignore_errors: true  
      tags: TC_012
      
    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_012
              
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_012

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_012
      
# Provisioning server with basic license where boot mode is BIOS, VD  present, firmware  updated, PXE device is disabled using cobbler       
- name: OMNIA_1.1_iDRAC_TC_013    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:  
                 
    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params3 }}"
      run_once: true
      tags: TC_013
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_013  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}" 
        line: "{{ sysprofile_regex3 }}"
      run_once: true
      tags: TC_013  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_013

    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_013
              
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_013

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_013

# Provisioning server with basic license where boot mode is BIOS, VD  present, firmware not updated using cobbler       
- name: OMNIA_1.1_iDRAC_TC_014    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:  
                 
    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params3 }}"
      run_once: true
      tags: TC_014
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}"
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_014  
        
    - name: Set system profile
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ sysprofile_attr_name }}" 
        line: "{{ sysprofile_regex3 }}"
      run_once: true
      tags: TC_014  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ snmp_attr_name }}"
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_014

    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_014
              
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_014

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_014

# Provisioning server with basic license where boot mode is BIOS, VD not present, firmware not updated, redfish is disabled, LC is not busy using cobbler
   
- name: OMNIA_1.1_iDRAC_TC_015    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:   
                
    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params3 }}"
      run_once: true
      tags: TC_015
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ bootmode_attr_name }}" 
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_015  
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ sysprofile_attr_name }}" 
        line: "{{ sysprofile_regex3 }}"
      run_once: true
      tags: TC_015  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_015

    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: "omnia_vd"
      ignore_errors: true  
      tags: TC_015

    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_015
      
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_015

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_015

# 1. Provisioning server with basic license where boot mode is BIOS, VD not present, firmware   updated, LC is busy   using cobbler  
# 2. Re-provision any server using Cobbler
- name: OMNIA_1.1_iDRAC_TC_016    
  hosts: all
  connection: local
  vars_files:
   - test_vars/test_idrac_vars.yml
   - ../roles/webui_awx/vars/main.yml
   - ../input_params/base_vars.yml
      
  collections:
    - dellemc.openmanage
    - community.general

  tasks:                 

    - name: Set system profile value
      lineinfile: 
        path: "{{ idrac_var_path }}" 
        regexp: "{{ sysprofile }}"
        line: "{{ sysprofile_params1 }}"
      run_once: true
      tags: TC_016
        
    - name: Set boot mode in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}" 
        regexp: "{{ bootmode_attr_name }}"
        line: "{{ bootmode_regex2 }}"
      run_once: true
      tags: TC_016 
        
    - name: Set system profile in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ sysprofile_attr_name }}"
        line: "{{ sysprofile_regex1 }}"
      run_once: true
      tags: TC_0016  
        
    - name: Set SNMP configuration in SCP file
      lineinfile: 
        path: "{{ temp_scp_path }}"
        regexp: "{{ snmp_attr_name }}" 
        line: "{{ snmp_regex }}"
      run_once: true
      tags: TC_016

    - name: Delete virtual disk
      dellemc_idrac_storage_volume:
        idrac_ip: "{{ inventory_hostname }}"
        idrac_user: "{{ idrac_username }}"
        idrac_password: "{{ idrac_password }}"
        state: "delete"
        volumes:
        - name: "omnia_vd"
      ignore_errors: true  
      tags: TC_016

    - name: Set enterprise license status
      set_fact:
        enterprise_license: false
        datacenter_license: false
      run_once: true
      tags: TC_016
              
    - name: Import SCP configuration 
      idrac_server_config_profile:
       idrac_ip: "{{ inventory_hostname }}"
       idrac_user: "{{ idrac_username }}"
       idrac_password: "{{ idrac_password }}"
       share_name: "{{ playbook_dir }}"
       command: "import"
       scp_file: "{{ temp_scp_path }}"
       scp_components: "ALL"
       shutdown_type: "Graceful"
       job_wait: true
      tags: TC_016

    - block:        
        - name: Calling the test_prepare script
          vars:
            inventory_name: "{{ idrac_inventory_name }}"
            template_name: "{{ template_value }}"
            job_template_name: "{{ job_name }}"
            playbook_path: "{{ idrac_playbook_path }}"
            delete_status: true
          include_tasks: "{{ awx_script_path }}"      
       
        - name: Execute validation script
          include_tasks: "{{ validation_script_path }}"  
      tags: TC_016
