The VERITAS Storage Foundation creates its raw and block devices for the nodes in the directories /dev/vx/rdmp and /dev/vx/dmp, however it does not create any objects VxDMP* in the /dev directory.
Due to this design, the following call trace happend when getting devices information:
Traceback (most recent call last):
File "antest.py", line 104, in <module>
_ansiballz_main()
File "antest.py", line 96, in _ansiballz_main
invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
File "antest.py", line 42, in invoke_module
runpy.run_module(mod_name='ansible.modules.blivet', init_globals=None, run_name='__main__', alter_sys=True)
File "/usr/lib64/python3.6/runpy.py", line 205, in run_module
return _run_module_code(code, init_globals, run_name, mod_spec)
File "/usr/lib64/python3.6/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/tmp/ansible_blivet_payload_4mba_3tn/ansible_blivet_payload.zip/ansible/modules/blivet.py", line 1717, in <module>
File "/tmp/ansible_blivet_payload_4mba_3tn/ansible_blivet_payload.zip/ansible/modules/blivet.py", line 1713, in main
File "/tmp/ansible_blivet_payload_4mba_3tn/ansible_blivet_payload.zip/ansible/modules/blivet.py", line 1625, in run_module
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/blivet.py", line 140, in reset
self.devicetree.populate(cleanup_only=cleanup_only)
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 420, in populate
self._populate()
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 465, in _populate
self.handle_device(dev)
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 271, in handle_device
device = helper_class(self, info).run()
File "/usr/lib/python3.6/site-packages/blivet/populator/helpers/partition.py", line 106, in run
exists=True, parents=[disk])
File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock
return m(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/blivet/devices/partition.py", line 194, in __init__
self._parted_partition = self.disk.format.parted_disk.getPartitionByPath(self.path)
AttributeError: 'NoneType' object has no attribute 'getPartitionByPath'
In fact the above issue could be easily reproduced if I intentionally renamed my /dev/sdb to /dev/sdb-bak on a system without Veritas DMP installed, so that we could simulate the device /dev/sdb could not be seen when I was trying to run the ansible script to detect the devices.
Hello,
The VERITAS Storage Foundation creates its raw and block devices for the nodes in the directories /dev/vx/rdmp and /dev/vx/dmp, however it does not create any objects VxDMP* in the /dev directory.
Due to this design, the following call trace happend when getting devices information:
In fact the above issue could be easily reproduced if I intentionally renamed my /dev/sdb to /dev/sdb-bak on a system without Veritas DMP installed, so that we could simulate the device /dev/sdb could not be seen when I was trying to run the ansible script to detect the devices.
For more details about the VxDMP, refer to:
Best regards, Flos