Bug 1972155

Summary: `openstack tripleo validator group info` command throws an error "TypeError: expected str, bytes or os.PathLike object, not NoneType"
Product: Red Hat OpenStack Reporter: Gaël Chamoulaud <gchamoul>
Component: python-validations-libsAssignee: Jiri Podivin <jpodivin>
Status: CLOSED ERRATA QA Contact: David Rosenfeld <drosenfe>
Severity: high Docs Contact:
Priority: high    
Version: 17.0 (Wallaby)Keywords: Triaged
Target Milestone: beta   
Target Release: 17.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-validations-libs-1.2.1-0.20210701091831.8645aea.el8ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-09-21 12:15:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version: stable/wallaby
Embargoed:

Description Gaël Chamoulaud 2021-06-15 11:05:06 UTC
Description of problem:

The `openstack tripleo validator group info` command returns an error:

"TypeError: expected str, bytes or os.PathLike object, not NoneType"

and doesn't return the information of the validations groups anymore.

That issue appeared after the commit https://opendev.org/openstack/validations-libs/commit/5fad1a4d18c655910ed72e23ad5fb6ac0e4e412c

How reproducible:

$ openstack tripleo validator group info
expected str, bytes or os.PathLike object, not NoneType

$ openstack -vvv --debug tripleo validator group info
START with options: -vvv --debug tripleo validator group info
options: Namespace(access_token='***', access_token_endpoint='', access_token_type='', aodh_endpoint='', application_credential_id='', application_credential_name='', application_credential_secret='***', auth_methods='', auth_type='', auth_url='', cacert=None, cert='', client_id='', client_secret='***', cloud='', code='', debug=True, default_domain='default', default_domain_id='', default_domain_name='', deferred_help=False, discovery_endpoint='', domain_id='', domain_name='', endpoint='', identity_provider='', identity_provider_url='', insecure=None, inspector_api_version='1', inspector_url=None, interface='public', key='', log_file=None, openid_scope='', os_alarming_api_version='2', os_baremetal_api_version='1.69', os_beta_command=False, os_compute_api_version='', os_container_infra_api_version='1', os_data_processing_api_version='1.1', os_data_processing_url='', os_database_api_version='1', os_dns_api_version='2', os_event_api_version='2', os_identity_api_version='', os_image_api_version='', os_key_manager_api_version='1', os_loadbalancer_api_version='2.0', os_metrics_api_version='1', os_network_api_version='', os_object_api_version='', os_orchestration_api_version='1', os_placement_api_version='1.0', os_project_id=None, os_project_name=None, os_queues_api_version='2', os_share_api_version='2.63', os_tripleoclient_api_version='2', os_volume_api_version='', os_workflow_api_version='2', passcode='', password='***', profile='', project_domain_id='', project_domain_name='', project_id='', project_name='', protocol='', redirect_uri='', region_name='', remote_project_domain_id='', remote_project_domain_name='', remote_project_id='', remote_project_name='', roles='', service_provider='', service_provider_endpoint='', service_provider_entity_id='', system_scope='', timing=False, token='***', trust_id='', user='', user_domain_id='', user_domain_name='', user_id='', username='', verbose_level=3, verify=None)
Auth plugin password selected
auth_config_hook(): {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'baremetal_status_code_retries': '5', 'baremetal_introspection_status_code_retries': '5', 'image_status_code_retries': '5', 'disable_vendor_agent': {}, 'interface': 'public', 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active', 'auth': {}, 'verbose_level': 3, 'deferred_help': False, 'debug': True, 'default_domain': 'default', 'timing': False, 'inspector_api_version': '1', 'beta_command': False, 'baremetal_api_version': '1.69', 'data_processing_api_version': '1.1', 'alarming_api_version': '2', 'event_api_version': '2', 'orchestration_api_version': '1', 'share_api_version': '2.63', 'queues_api_version': '2',
'dns_api_version': '2', 'workflow_api_version': '2', 'key_manager_api_version': '1', 'metrics_api_version': '1', 'database_api_version': '1', 'loadbalancer_api_version': '2.0', 'container_infra_api_version': '1', 'tripleoclient_api_version': '2', 'placement_api_version': '1.0', 'region_name': '', 'auth_type': 'password', 'networks': []}
defaults: {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'auth_type': 'password', 'baremetal_status_code_retries': 5, 'baremetal_introspection_status_code_retries': 5, 'image_status_code_retries': 5, 'disable_vendor_agent': {}, 'interface': None, 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active'}
cloud cfg: {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'baremetal_status_code_retries': '5', 'baremetal_introspection_status_code_retries': '5', 'image_status_code_retries': '5', 'disable_vendor_agent': {}, 'interface': 'public', 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active', 'auth': {}, 'verbose_level': 3, 'deferred_help': False, 'debug': True, 'default_domain': 'default', 'timing': False, 'inspector_api_version': '1', 'beta_command': False, 'baremetal_api_version': '1.69', 'data_processing_api_version': '1.1', 'alarming_api_version': '2', 'event_api_version': '2', 'orchestration_api_version': '1', 'share_api_version': '2.63', 'queues_api_version': '2', 'dns_api_version': '2', 'workflow_api_version': '2', 'key_manager_api_version': '1', 'metrics_api_version': '1', 'database_api_version': '1', 'loadbalancer_api_version': '2.0', 'container_infra_api_version': '1', 'tripleoclient_api_version': '2', 'placement_api_version': '1.0', 'region_name': '', 'auth_type': 'password', 'networks': []}
compute API version 2.1, cmd group openstack.compute.v2
identity API version 3, cmd group openstack.identity.v3
image API version 2, cmd group openstack.image.v2
network API version 2, cmd group openstack.network.v2
object_store API version 1, cmd group openstack.object_store.v1
volume API version 3, cmd group openstack.volume.v3
baremetal_introspection API version 1, cmd group openstack.baremetal_introspection.v1
neutronclient API version 2, cmd group openstack.neutronclient.v2
baremetal API version 1.69, cmd group openstack.baremetal.v1
data_processing API version 1.1, cmd group openstack.data_processing.v1
alarming API version 2, cmd group openstack.alarming.v2
event API version 2, cmd group openstack.event.v2
orchestration API version 1, cmd group openstack.orchestration.v1
share API version 2.63, cmd group openstack.share.v2
messaging API version 2, cmd group openstack.messaging.v2
dns API version 2, cmd group openstack.dns.v2
workflow_engine API version 2, cmd group openstack.workflow_engine.v2
/usr/lib/python3.6/site-packages/barbicanclient/__init__.py:61: UserWarning: The secrets module is moved to barbicanclient/v1 directory, direct import of barbicanclient.secrets will be deprecated. Please import barbicanclient.v1.secrets instead.
  % (name, name, name))
key_manager API version 1, cmd group openstack.key_manager.v1
metric API version 1, cmd group openstack.metric.v1
database API version 1, cmd group openstack.database.v1
load_balancer API version 2.0, cmd group openstack.load_balancer.v2
container_infra API version 1, cmd group openstack.container_infra.v1
Popen(['git', 'version'], cwd=/home/stack, universal_newlines=False, shell=None, istream=None)
Popen(['git', 'version'], cwd=/home/stack, universal_newlines=False, shell=None, istream=None)
tripleoclient API version 2, cmd group openstack.tripleoclient.v2
placement API version 1.0, cmd group openstack.placement.v1
command: tripleo validator group info -> tripleoclient.v1.tripleo_validator.TripleOValidatorGroupInfo (auth=False)
Auth plugin password selected
auth_config_hook(): {'api_timeout': None, 'verify': True, 'cacert': None, 'cert': None, 'key': None, 'baremetal_status_code_retries': '5', 'baremetal_introspection_status_code_retries': '5', 'image_status_code_retries': '5', 'disable_vendor_agent': {}, 'interface': 'public', 'floating_ip_source': 'neutron', 'image_api_use_tasks': False, 'image_format': 'qcow2', 'message': '', 'network_api_version': '2', 'object_store_api_version': '1', 'secgroup_source': 'neutron', 'status': 'active', 'auth': {}, 'additional_user_agent': [('osc-lib', '2.4.0')], 'verbose_level': 3, 'deferred_help': False, 'debug': True, 'default_domain': 'default', 'timing': False, 'inspector_api_version': '1', 'beta_command': False, 'baremetal_api_version': '1.69', 'data_processing_api_version': '1.1', 'alarming_api_version': '2', 'event_api_version': '2', 'orchestration_api_version': '1', 'share_api_version': '2.63', 'queues_api_version': '2', 'dns_api_version': '2', 'workflow_api_version': '2', 'key_manager_api_version': '1', 'metrics_api_version': '1', 'database_api_version': '1', 'loadbalancer_api_version': '2.0', 'container_infra_api_version': '1', 'tripleoclient_api_version': '2', 'placement_api_version': '1.0', 'region_name': '', 'auth_type': 'password', 'networks': []}
expected str, bytes or os.PathLike object, not NoneType
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/cliff/app.py", line 401, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python3.6/site-packages/cliff/display.py", line 115, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python3.6/site-packages/validations_libs/cli/show.py", line 79, in take_action
    return v_actions.group_information(group)
  File "/usr/lib/python3.6/site-packages/validations_libs/validation_actions.py", line 433, in group_information
    val_gp = Group(groups)
  File "/usr/lib/python3.6/site-packages/validations_libs/group.py", line 43, in __init__
    self.data = self._get_content(groups)
  File "/usr/lib/python3.6/site-packages/validations_libs/group.py", line 47, in _get_content
    with open(groups, 'r') as gp:
TypeError: expected str, bytes or os.PathLike object, not NoneType
clean_up TripleOValidatorGroupInfo: expected str, bytes or os.PathLike object, not NoneType
'ClientManager' object has no attribute 'sdk_connection'
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/cliff/app.py", line 416, in run_subcommand
    self.clean_up(cmd, result, err)
  File "/usr/lib/python3.6/site-packages/osc_lib/shell.py", line 499, in clean_up
    if self.client_manager.sdk_connection:
AttributeError: 'ClientManager' object has no attribute 'sdk_connection'
END return value: 1

Comment 2 Jiri Podivin 2021-06-18 13:55:00 UTC
Patch was abandoned, as it was too expansive. 
New patch is now in midst of the review process.

Comment 9 errata-xmlrpc 2022-09-21 12:15:48 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Release of components for Red Hat OpenStack Platform 17.0 (Wallaby)), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2022:6543