dell / dellemc-openmanage-ansible-modules

Dell OpenManage Ansible Modules
GNU General Public License v3.0
335 stars 163 forks source link

idrac_firmware - failing on the iDrac 9 latest fimrware release 5.0 #327

Closed Sin317 closed 2 years ago

Sin317 commented 3 years ago
Summary

i have spotted that module is failing on the idrac 9 with installed Firmware version 5.0

Component Name

idrac_firmware

Ansible Version
ansible 2.9.12
python 3.9.7
omsdk 1.2.478
dell emc 4.0.0 ansible modules
using local drm setup
iDRAC or OpenManage Enterprise version

iDRAC 5.0.0

Steps to Reproduce

run the simple playbook to update idrac from our internal repo http://x.x.x.x/drmdell/export/

Playbook used
 - name: Update firmware from repository on a internally hosted HTTP repository
    dellemc.openmanage.idrac_firmware:
       idrac_ip: "x.x.x.x"
       idrac_user: "root"
       idrac_password:   "password"
       share_name: "http://x.x.x.x/drmdell/export/" 
       reboot: True
       apply_update: True
       job_wait: True
       catalog_file_name: "demorepo_1.02_Catalog.xml"
    register: updateresult
    ignore_errors: true
Expected Results

playbook should pass without error

Actual Results
The full traceback is:
Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-tmp-1634638142.58-24855-247074750743387/AnsiballZ_idrac_firmware.py", line 247, in <module>
    _ansiballz_main()
  File "/root/.ansible/tmp/ansible-tmp-1634638142.58-24855-247074750743387/AnsiballZ_idrac_firmware.py", line 237, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/root/.ansible/tmp/ansible-tmp-1634638142.58-24855-247074750743387/AnsiballZ_idrac_firmware.py", line 108, in invoke_module
    runpy.run_module(mod_name='ansible_collections.dellemc.openmanage.plugins.modules.idrac_firmware', init_globals=None, run_name='__main__', alter_sys=True)
  File "/usr/local/lib/python3.9/runpy.py", line 210, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/local/lib/python3.9/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 632, in <module>
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 617, in main
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 492, in update_firmware_redfish
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 342, in update_firmware_url_redfish
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 214, in wait_for_job_completion
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_redfish.py", line 135, in invoke_request
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py", line 1384, in open_url
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py", line 1294, in open
  File "/usr/local/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/lib/python3.9/urllib/request.py", line 517, in open
    response = self._open(req, data)
  File "/usr/local/lib/python3.9/urllib/request.py", line 534, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/local/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py", line 467, in https_open
  File "/usr/local/lib/python3.9/urllib/request.py", line 1350, in do_open
    r = h.getresponse()
  File "/usr/local/lib/python3.9/http/client.py", line 1371, in getresponse
    response.begin()
  File "/usr/local/lib/python3.9/http/client.py", line 319, in begin
    version, status, reason = self._read_status()
  File "/usr/local/lib/python3.9/http/client.py", line 280, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/local/lib/python3.9/socket.py", line 704, in readinto
    return self._sock.recv_into(b)
  File "/usr/local/lib/python3.9/ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/local/lib/python3.9/ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
fatal: [localhost]: FAILED! => {
    "changed": false, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1634638142.58-24855-247074750743387/AnsiballZ_idrac_firmware.py\", line 247, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1634638142.58-24855-247074750743387/AnsiballZ_idrac_firmware.py\", line 237, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1634638142.58-24855-247074750743387/AnsiballZ_idrac_firmware.py\", line 108, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.dellemc.openmanage.plugins.modules.idrac_firmware', init_globals=None, run_name='__main__', alter_sys=True)\n  File \"/usr/local/lib/python3.9/runpy.py\", line 210, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/local/lib/python3.9/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/local/lib/python3.9/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 632, in <module>\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 617, in main\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 492, in update_firmware_redfish\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 342, in update_firmware_url_redfish\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 214, in wait_for_job_completion\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_redfish.py\", line 135, in invoke_request\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py\", line 1384, in open_url\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py\", line 1294, in open\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 214, in urlopen\n    return opener.open(url, data, timeout)\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 517, in open\n    response = self._open(req, data)\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 534, in _open\n    result = self._call_chain(self.handle_open, protocol, protocol +\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 494, in _call_chain\n    result = func(*args)\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_1j_793co/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py\", line 467, in https_open\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 1350, in do_open\n    r = h.getresponse()\n  File \"/usr/local/lib/python3.9/http/client.py\", line 1371, in getresponse\n    response.begin()\n  File \"/usr/local/lib/python3.9/http/client.py\", line 319, in begin\n    version, status, reason = self._read_status()\n  File \"/usr/local/lib/python3.9/http/client.py\", line 280, in _read_status\n    line = str(self.fp.readline(_MAXLINE + 1), \"iso-8859-1\")\n  File \"/usr/local/lib/python3.9/socket.py\", line 704, in readinto\n    return self._sock.recv_into(b)\n  File \"/usr/local/lib/python3.9/ssl.py\", line 1241, in recv_into\n    return self.read(nbytes, buffer)\n  File \"/usr/local/lib/python3.9/ssl.py\", line 1099, in read\n    return self._sslobj.read(len, buffer)\nsocket.timeout: The read operation timed out\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", 
    "rc": 1

Community Note

anupamaloke commented 3 years ago

@Sin317, could you please force reinstall the collection ansible-galaxy collection install dellemc.openmanage -f and then re-run the playbook?

Sin317 commented 3 years ago

@anupamaloke i ran that command

ansible-galaxy collection install dellemc.openmanage -f
Process install dependency map
Starting collection install process
Installing 'dellemc.openmanage:4.1.0' to '/root/.ansible/collections/ansible_collections/dellemc/openmanage'

but still getting this error on re-run of playbook: File \"/usr/local/lib/python3.9/json/decoder.py\", line 355, in raw_decode\n raise JSONDecodeError(\"Expecting value\", s, err.value) from None\njson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

detailed error:

Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-tmp-1634801795.61-32306-72709204155087/AnsiballZ_idrac_firmware.py", line 247, in <module>
    _ansiballz_main()
  File "/root/.ansible/tmp/ansible-tmp-1634801795.61-32306-72709204155087/AnsiballZ_idrac_firmware.py", line 237, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/root/.ansible/tmp/ansible-tmp-1634801795.61-32306-72709204155087/AnsiballZ_idrac_firmware.py", line 108, in invoke_module
    runpy.run_module(mod_name='ansible_collections.dellemc.openmanage.plugins.modules.idrac_firmware', init_globals=None, run_name='__main__', alter_sys=True)
  File "/usr/local/lib/python3.9/runpy.py", line 210, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/local/lib/python3.9/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_auyble5k/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 632, in <module>
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_auyble5k/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 622, in main
  File "/usr/local/lib/python3.9/json/__init__.py", line 293, in load
    return loads(fp.read(),
  File "/usr/local/lib/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
fatal: [localhost]: FAILED! => {
    "changed": false, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1634801795.61-32306-72709204155087/AnsiballZ_idrac_firmware.py\", line 247, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1634801795.61-32306-72709204155087/AnsiballZ_idrac_firmware.py\", line 237, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1634801795.61-32306-72709204155087/AnsiballZ_idrac_firmware.py\", line 108, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.dellemc.openmanage.plugins.modules.idrac_firmware', init_globals=None, run_name='__main__', alter_sys=True)\n  File \"/usr/local/lib/python3.9/runpy.py\", line 210, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/local/lib/python3.9/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/local/lib/python3.9/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_auyble5k/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 632, in <module>\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_auyble5k/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 622, in main\n  File \"/usr/local/lib/python3.9/json/__init__.py\", line 293, in load\n    return loads(fp.read(),\n  File \"/usr/local/lib/python3.9/json/__init__.py\", line 346, in loads\n    return _default_decoder.decode(s)\n  File \"/usr/local/lib/python3.9/json/decoder.py\", line 337, in decode\n    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n  File \"/usr/local/lib/python3.9/json/decoder.py\", line 355, in raw_decode\n    raise JSONDecodeError(\"Expecting value\", s, err.value) from None\njson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", 
sachin-apa commented 3 years ago

@Sin317 : Can you please re run by making the below changes at the line no 638-639 of idrac_firmware.py and share the result. Probably some HTTP error from iDRAC or iDRAC is not reachable from a machine the playbook is ran. (similar issue that was closed Issue 313 )

 except HTTPError as err:
        module.fail_json(msg=str(err), update_status=err)
Sin317 commented 3 years ago
Screenshot 2021-10-21 at 3 20 49 PM

@sachin-apa the lines you have mentioned are already present in our idrac_firmware.py file, but still facing the above mentioned error.

sachin-apa commented 3 years ago

@Sin317 Please note I have removed update_status=json.load(err) and replaced with update_status=err .. after the changes the output should help in identifying the actual error , the issue may not be fixed.

 except HTTPError as err:
        module.fail_json(msg=str(err), update_status=err)
Sin317 commented 3 years ago

@sachin-apa On making the change you suggested, getting this error now:

The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 617, in main
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 492, in update_firmware_redfish
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 355, in update_firmware_url_redfish
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 348, in update_firmware_url_redfish
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_redfish.py", line 138, in invoke_request
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_redfish.py", line 135, in invoke_request
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py", line 1384, in open_url
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py", line 1294, in open
  File "/usr/local/lib/python3.9/urllib/request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/local/lib/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/usr/local/lib/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/usr/local/lib/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/usr/local/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/local/lib/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/.ansible/tmp/ansible-tmp-1634811600.78-11507-259294992399922/AnsiballZ_idrac_firmware.py", line 247, in <module>
    _ansiballz_main()
  File "/root/.ansible/tmp/ansible-tmp-1634811600.78-11507-259294992399922/AnsiballZ_idrac_firmware.py", line 237, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/root/.ansible/tmp/ansible-tmp-1634811600.78-11507-259294992399922/AnsiballZ_idrac_firmware.py", line 108, in invoke_module
    runpy.run_module(mod_name='ansible_collections.dellemc.openmanage.plugins.modules.idrac_firmware', init_globals=None, run_name='__main__', alter_sys=True)
  File "/usr/local/lib/python3.9/runpy.py", line 210, in run_module
    return _run_module_code(code, init_globals, run_name, mod_spec)
  File "/usr/local/lib/python3.9/runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 632, in <module>
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py", line 622, in main
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py", line 2197, in fail_json
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py", line 2169, in _return_formatted
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py", line 435, in remove_values
  File "/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py", line 412, in _remove_values_conditions
TypeError: Value of unknown type: <class 'urllib.error.HTTPError'>, HTTP Error 400: Bad Request
fatal: [localhost]: FAILED! => {
    "changed": false, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 617, in main\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 492, in update_firmware_redfish\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 355, in update_firmware_url_redfish\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 348, in update_firmware_url_redfish\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_redfish.py\", line 138, in invoke_request\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_redfish.py\", line 135, in invoke_request\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py\", line 1384, in open_url\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/urls.py\", line 1294, in open\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 214, in urlopen\n    return opener.open(url, data, timeout)\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 523, in open\n    response = meth(req, response)\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 632, in http_response\n    response = self.parent.error(\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 561, in error\n    return self._call_chain(*args)\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 494, in _call_chain\n    result = func(*args)\n  File \"/usr/local/lib/python3.9/urllib/request.py\", line 641, in http_error_default\n    raise HTTPError(req.full_url, code, msg, hdrs, fp)\nurllib.error.HTTPError: HTTP Error 400: Bad Request\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/root/.ansible/tmp/ansible-tmp-1634811600.78-11507-259294992399922/AnsiballZ_idrac_firmware.py\", line 247, in <module>\n    _ansiballz_main()\n  File \"/root/.ansible/tmp/ansible-tmp-1634811600.78-11507-259294992399922/AnsiballZ_idrac_firmware.py\", line 237, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/root/.ansible/tmp/ansible-tmp-1634811600.78-11507-259294992399922/AnsiballZ_idrac_firmware.py\", line 108, in invoke_module\n    runpy.run_module(mod_name='ansible_collections.dellemc.openmanage.plugins.modules.idrac_firmware', init_globals=None, run_name='__main__', alter_sys=True)\n  File \"/usr/local/lib/python3.9/runpy.py\", line 210, in run_module\n    return _run_module_code(code, init_globals, run_name, mod_spec)\n  File \"/usr/local/lib/python3.9/runpy.py\", line 97, in _run_module_code\n    _run_code(code, mod_globals, init_globals,\n  File \"/usr/local/lib/python3.9/runpy.py\", line 87, in _run_code\n    exec(code, run_globals)\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 632, in <module>\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible_collections/dellemc/openmanage/plugins/modules/idrac_firmware.py\", line 622, in main\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py\", line 2197, in fail_json\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py\", line 2169, in _return_formatted\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py\", line 435, in remove_values\n  File \"/tmp/ansible_dellemc.openmanage.idrac_firmware_payload_2pt4tjqj/ansible_dellemc.openmanage.idrac_firmware_payload.zip/ansible/module_utils/basic.py\", line 412, in _remove_values_conditions\nTypeError: Value of unknown type: <class 'urllib.error.HTTPError'>, HTTP Error 400: Bad Request\n", 
sachin-apa commented 3 years ago

@Sin317 : Thanks for rerunning with changes.. Looks like the HTTP 400 error is thrown.

We need to check on couple of things.

  1. Internal http repository for firmware update is being used- please check if it is accessible by iDRAC or not?
  2. Need to check CIFS/NFS and catalog file?

Please do check on these two points, if issue still persists, then it would be good to open a SR with us. FYI .. @anupamaloke

Sin317 commented 3 years ago

@sachin-apa

  1. Internal http repository is accessible by iDRAC.
  2. we are exposing the xml as http server and this is the catalog.xml for your reference this is the ansible task:
    - name: Update firmware from repository on a internally hosted HTTP repository
    dellemc.openmanage.idrac_firmware:
       idrac_ip: "x.x.x.x"
       idrac_user: "user"
       idrac_password:   "password"
       share_name: "http://<http server>/drmdell/export/"
       reboot: False
       apply_update: False
       job_wait: False
       catalog_file_name: "Catalog.xml"
    register: firmware_list_tobe_updated

Could you also please share the steps to open an SR ?

Sin317 commented 2 years ago

@anupamaloke @sachin-apa could you please provide any update?

anupamaloke commented 2 years ago

@Sin317, we would recommend to open a support request (SR) with Dell Tech Support. You can do so online. All you need to have handy is the Server's ServiceTag. Please see the link how-to-create-a-support-request-online-for-dell-emc.

Sin317 commented 2 years ago

@anupamaloke okay, thank you.

anupamaloke commented 2 years ago

@Sin317, as there have been no updates since last time, I am closing this issue. Please open a new issue in case you are still running into the same error.