Browse Source

Merge pull request #462 from abhishek-s-a/provision_idrac

Issue 461: Skipping PowerEdge model missing in idrac_vars.yml
John Lockman 3 years ago
parent
commit
b9fa05a246

+ 4 - 1
control_plane/roles/provision_idrac/tasks/check_prerequisites.yml

@@ -28,7 +28,7 @@
   run_once: true
   
 - name: Fetch management station ip from {{ management_station_ip_file }}
-  shell: cat {{ role_path }}/files/{{ management_station_ip_file }}
+  command: cat {{ role_path }}/files/{{ management_station_ip_file }}
   changed_when: false
   register: fetch_ip
   run_once: true
@@ -57,6 +57,8 @@
     job_wait: true
   register: nfs_check
   ignore_errors: true
+  until: not nfs_check.failed
+  retries: 3
 
 - name: Missing entries in nfs exports
   fail:
@@ -74,6 +76,7 @@
     enterprise_license: false
     datacenter_license: false
     provision_status: false
+    model_status: false
 
 - block:
     - name: Check tower_cli.cfg is encrypted

+ 16 - 1
control_plane/roles/provision_idrac/tasks/update_firmware.yml

@@ -14,6 +14,12 @@
 ---
 
 - block:
+    - name: Set model status
+      set_fact:
+        model_status: true
+      when: item in idrac_info.system_info.System[0].Model
+      with_items: "{{ poweredge_model.split(',') | map('trim') }}"
+
     - name: Update firmware (This task will take time based on current firmware version)
       dellemc.openmanage.idrac_firmware:
         idrac_ip: "{{ inventory_hostname }}"
@@ -25,11 +31,13 @@
         apply_update: True
         catalog_file_name: "Catalog.xml"
       register: update_firmware
+      when: model_status
 
     - name: Wait for one minute to complete firmware update
       wait_for:
         timeout: 60
       run_once: true
+      when: model_status
 
     - name: Wait for iDRAC port to become active
       wait_for:
@@ -40,7 +48,14 @@
     - name: Firmware update status
       debug:
         msg: "{{ firmware_job_success_msg }}"
-      when: not update_firmware.failed
+      when:
+        - model_status
+        - not update_firmware.failed
+
+    - name: Firmware update skip status
+      debug:
+        msg: "{{ firmware_job_skip_msg }}"
+      when: not model_status
 
   rescue:
     - name: Firmware update job status

+ 1 - 0
control_plane/roles/provision_idrac/vars/main.yml

@@ -25,6 +25,7 @@ idrac_system_profile_success_msg: "idrac_system_profile validated"
 idrac_system_profile_fail_msg: "Failed. Incorrect setting input for idrac_system_profile in idrac_vars.yml"
 firmware_update_success_msg: "firmware_update_required validated"
 firmware_update_fail_msg: "Failed. firmware_update_required accepts only true or false in idrac_vars.yml"
+firmware_job_skip_msg: "Firmware update task skipped due to missing updates in /var/nfs_repo"
 snmp_community_success_msg: "snmp_community_name validated"
 snmp_community_fail_msg: "Failed. snmp_community_name should not be empty in base_vars.yml"
 snmp_trap_dest_success_msg: "snmp_trap_destination validated"