Browse Source

Issue #543: Test automation script for inventory

Signed-off-by: vedaprakashanp <vedaprakasha_n_putta@dellteam.com>
vedaprakashanp 3 years ago
parent
commit
e536844d15
1 changed files with 147 additions and 0 deletions
  1. 147 0
      control_plane/test/test_inventory_validation.yml

+ 147 - 0
control_plane/test/test_inventory_validation.yml

@@ -0,0 +1,147 @@
+#  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.
+---
+- block: 
+      
+   - name: Get iDRAC IP details
+     dellemc.openmanage.idrac_system_info:
+      idrac_ip: "{{ item | trim }}"
+      idrac_user: "{{ idrac_username }}"
+      idrac_password: "{{ idrac_password }}"
+     register: idrac_ip
+     run_once: true
+     ignore_errors: yes 
+     tags: "TC_004"   
+
+   - name: Validate iDRAC IP
+     assert:
+      that: 
+        - idrac_ip.system_info.iDRACNIC[0].ProductInfo == idrac_search_key
+      fail_msg: "{{ item | trim }} {{ idrac_fail_msg }}"
+      success_msg: "{{ item | trim }} {{ idrac_success_msg }}"
+     tags: "TC_004" 
+
+   - name: Authenticate infiniband Switch
+     uri:
+       url: http://{{ item | trim }}/admin/launch?script=rh&template=login&action=login
+       method: POST
+       body_format: form-urlencoded
+       body:
+         f_user_id: "{{ ib_username }}"
+         f_password: "{{ ib_password }}"
+         enter: Sign in
+       status_code: "{{ infiniband_status_code }}"
+     register: login
+     ignore_errors: yes
+     run_once: true
+     tags: "TC_005"  
+          
+   - name: Assert infiniband switch
+     uri:
+       url: http://{{ item | trim }}/admin/launch?script=json
+       method: POST
+       body_format: json
+       headers:
+         Cookie: "{{ login.set_cookie.split(';')[0] }}"
+       body:
+         {
+         "commands":
+          [
+            "show version"
+          ]
+         }
+     register: infinibandswitch_info
+     when: login.failed == false  or 'set_cookie' not in login
+     ignore_errors: yes
+     run_once: true
+     tags: "TC_005"
+              
+   - name: Validate infiniband  IP
+     assert:
+      that: 
+        - infinibandswitch_info.json.data['Product name'] == infiniband_search_key
+      fail_msg: "{{ infiniband_fail_msg }}"
+      success_msg: "{{ infiniband_success_msg }}"
+     ignore_errors: yes
+     tags: "TC_005"
+          
+   - name: Get ethernet IP details
+     dellos10_command:
+       provider:
+         host: "{{ item | trim }}"
+         username: "{{ ethernet_switch_username }}"
+         password: "{{ ethernet_switch_password }}"
+       commands: ['show version']
+     register: ethernet_info
+     ignore_errors: yes
+     run_once: true
+     when: ethernet_switch_support
+     tags: "TC_006"
+
+   - name: Validate ethernet  IP
+     assert:
+      that: 
+        - ethernet_info.stdout | regex_search(ethernet_search_key)
+      fail_msg: " {{ item | trim }} {{ ethernet_fail_msg }}"
+      success_msg: "{{ item | trim }} {{ ethernet_success_msg }}"
+     tags: "TC_006"
+           
+   - name: Get auth string for powervault
+     shell: echo -n {{ powervault_me4_username }}_{{powervault_me4_password}} | sha256sum
+     changed_when: false
+     when: powervault_support 
+     register: auth_string
+     ignore_errors: yes
+     run_once: true
+     tags: "TC_007"
+         
+   - name: Get session key for powervault
+     uri:
+       url: https://{{ item | trim }}/api/login/{{ auth_string.stdout | replace(" -", "") }}
+       method: GET
+       headers:
+         {'datatype': 'json'}
+       validate_certs: no
+     when: powervault_support 
+     register: session_key
+     ignore_errors: yes
+     run_once: true
+     tags: "TC_007"
+        
+   - name: Assert me4_powervault
+     uri:
+       url: https://{{ item | trim }}/api/show/system
+       method: GET
+       body_format: json
+       validate_certs: no
+       use_proxy: no
+       headers:
+         {'sessionKey': "{{ session_key.json.status[0].response }}", 'datatype':'json'} 
+     register: system_info
+     ignore_errors: yes
+     run_once: true
+     tags: "TC_007"
+
+   - name: Validate me4_powervault  IP
+     assert:
+      that: 
+        - "'{{ me4_powervault_search_key }}' in system_info.json.system[0]['scsi-product-id']"
+      fail_msg: "{{ item | trim }} {{ powervault_fail_msg }}"
+      success_msg: "{{ item | trim }} {{ powervault_success_msg }}"
+     ignore_errors: yes
+     tags: "TC_007"
+       
+  rescue:
+    - debug:
+       msg: "{{ failed_msg }}"