Bug 1365195

Summary: baremetal show capabilities not working
Product: Red Hat OpenStack Reporter: Dimitri Savineau <dsavinea>
Component: python-tripleoclientAssignee: Dmitry Tantsur <dtantsur>
Status: CLOSED ERRATA QA Contact: Alexander Chuzhoy <sasha>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 9.0 (Mitaka)CC: athomas, dbecker, dsneddon, dtantsur, hbrock, jcoufal, jschluet, jslagle, kejones, mburns, morazi, rhel-osp-director-maint, vcojot
Target Milestone: Upstream M3Keywords: Triaged
Target Release: 11.0 (Ocata)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: python-tripleoclient-6.1.0-2.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-05-17 19:31:56 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:
Embargoed:

Description Dimitri Savineau 2016-08-08 15:13:42 UTC
Description of problem:

Since Mitaka the command "openstack baremetal show capabilities" uses ironicclient instead of tripleoclient but this one is not working.

Version-Release number of selected component (if applicable):

OSP 9 latest puddle (05/08)
python-ironicclient-1.3.1-1.el7ost.noarch
python-tripleoclient-2.0.0-2.el7ost.noarch

How reproducible: 100%

Steps to Reproduce:
1. Deploy undercloud
2. Import baremetal nodes
3. Run "openstack baremetal show capabilities"

Actual results:

$ openstack --debug baremetal show capabilities
(...)
command: baremetal show -> ironicclient.osc.v1.baremetal.ShowBaremetal
(...)
Could not find resource capabilities
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 346, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python2.7/site-packages/cliff/display.py", line 79, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal.py", line 279, in take_action
    parsed_args.node)._info
  File "/usr/lib/python2.7/site-packages/openstackclient/common/utils.py", line 118, in find_resource
    raise exceptions.CommandError(msg)
CommandError: Could not find resource capabilities
clean_up ShowBaremetal: Could not find resource capabilities
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/openstackclient/shell.py", line 118, in run
    ret_val = super(OpenStackShell, self).run(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 226, in run
    result = self.run_subcommand(remainder)
  File "/usr/lib/python2.7/site-packages/openstackclient/shell.py", line 153, in run_subcommand
    ret_value = super(OpenStackShell, self).run_subcommand(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 346, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python2.7/site-packages/cliff/display.py", line 79, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal.py", line 279, in take_action
    parsed_args.node)._info
  File "/usr/lib/python2.7/site-packages/openstackclient/common/utils.py", line 118, in find_resource
    raise exceptions.CommandError(msg)
CommandError: Could not find resource capabilities

Expected results: (in OSP 8)

$ openstack --debug baremetal show capabilities
(...)
command: baremetal show capabilities -> tripleoclient.v1.baremetal.ShowNodeCapabilities
(...)
+--------------------------------------+-------------------------------------------+
| Node UUID                            | Node Capabilities                         |
+--------------------------------------+-------------------------------------------+
| def47193-c00c-4347-81de-d46b59c1e425 | boot_option:local,profile:control         |
| 0a7057bd-f532-472c-ba3b-bb864c09315c | boot_option:local,profile:compute         |
+--------------------------------------+-------------------------------------------+

Additional info:

baremetal show option introduced in mitaka 
https://github.com/openstack/python-ironicclient/blob/stable/mitaka/setup.cfg#L35
https://github.com/openstack/python-ironicclient/commit/a5a15e40a5484975243afb8519cc47261cf01f91

Comment 2 Kevin Jones 2016-09-26 22:37:04 UTC
Confirmed as well. Latest RHOSP9 OSP-d and receive the following messages back:

[stack@osp-d ~]$ openstack baremetal show capabilities
Could not find resource capabilities
[stack@osp-d ~]$ openstack help baremetal
Command "baremetal" matches:
  baremetal configure boot
  baremetal configure ready state
  baremetal create
  baremetal delete
  baremetal import
  baremetal instackenv validate
  baremetal introspection abort
  baremetal introspection bulk start
  baremetal introspection bulk status
  baremetal introspection data save
  baremetal introspection rule delete
  baremetal introspection rule import
  baremetal introspection rule list
  baremetal introspection rule purge
  baremetal introspection rule show
  baremetal introspection start
  baremetal introspection status
  baremetal list
  baremetal set
  baremetal show
  baremetal show capabilities
  baremetal unset

Comment 3 Dan Sneddon 2016-10-14 19:22:14 UTC
Confirmed on OSP 10 puddle:

[stack@undercloud-0 ~]$ openstack help baremetal
Command "baremetal" matches:
  baremetal chassis create
  baremetal chassis delete
  baremetal chassis list
  baremetal chassis set
  baremetal chassis show
  baremetal chassis unset
  baremetal configure boot
  baremetal configure ready state
  baremetal create
  baremetal delete
  baremetal driver list
  baremetal driver passthru call
  baremetal driver passthru list
  baremetal driver show
  baremetal import
  baremetal instackenv validate
  baremetal introspection abort
  baremetal introspection bulk start
  baremetal introspection bulk status
  baremetal introspection data save
  baremetal introspection reprocess
  baremetal introspection rule delete
  baremetal introspection rule import
  baremetal introspection rule list
  baremetal introspection rule purge
  baremetal introspection rule show
  baremetal introspection start
  baremetal introspection status
  baremetal list
  baremetal node abort
  baremetal node adopt
  baremetal node boot device set
  baremetal node boot device show
  baremetal node clean
  baremetal node console disable
  baremetal node console enable
  baremetal node console show
  baremetal node create
  baremetal node delete
  baremetal node deploy
  baremetal node inspect
  baremetal node list
  baremetal node maintenance set
  baremetal node maintenance unset
  baremetal node manage
  baremetal node passthru call
  baremetal node passthru list
  baremetal node power
  baremetal node provide
  baremetal node reboot
  baremetal node rebuild
  baremetal node set
  baremetal node show
  baremetal node undeploy
  baremetal node unset
  baremetal node validate
  baremetal port create
  baremetal port delete
  baremetal port list
  baremetal port set
  baremetal port show
  baremetal port unset
  baremetal set
  baremetal show
  baremetal show capabilities
  baremetal unset

[stack@undercloud-0 ~]$ openstack baremetal show
usage: openstack baremetal show [-h] [-f {json,shell,table,value,yaml}]
                                [-c COLUMN] [--max-width <integer>]
                                [--noindent] [--prefix PREFIX] [--instance]
                                [--fields <field> [<field> ...]]
                                <node>
openstack baremetal show: error: too few arguments

[stack@undercloud-0 ~]$ openstack baremetal show capabilities
This command is deprecated. Instead, use 'openstack baremetal node show'.

With '--debug':

Node capabilities could not be found. (HTTP 404)
[stack@undercloud-0 ~]$ openstack --debug baremetal show capabilities
START with options: [u'--debug', u'baremetal', u'show', u'capabilities']
options: Namespace(access_key='', access_secret='***', access_token='***', access_token_endpoint='', access_token_type='', aodh_endpoint='', auth_type='', auth_url='http://192.0.2.1:5000/v2.0', authorization_code='', cacert=None, cert='', client_id='', client_secret='***', cloud='', consumer_key='', consumer_secret='***', 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='', key='', log_file=None, murano_url='', old_profile=None, openid_scope='', os_alarming_api_version='2', os_application_catalog_api_version='1', os_baremetal_api_version='1.15', 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_dns_api_version='2', os_identity_api_version='', os_image_api_version='1', os_key_manager_api_version='1', os_network_api_version='', os_object_api_version='', os_orchestration_api_version='1', os_project_id=None, os_project_name=None, os_queues_api_version='2', os_tripleoclient_api_version='1', os_volume_api_version='', os_workflow_api_version='2', passcode='', password='***', profile=None, project_domain_id='', project_domain_name='', project_id='', project_name='admin', protocol='', redirect_uri='', region_name='', roles='', timing=False, token='***', trust_id='', url='', user_domain_id='', user_domain_name='', user_id='', username='admin', verbose_level=3, verify=None)
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', u'orchestration_api_version': '1', u'database_api_version': u'1.0', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.0.2.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': '1', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', 'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'project_name': 'admin'}, 'default_domain': 'default', 'debug': True, u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'key': None, 'timing': False, 'password': '8bfacc42aabb9975d0676c9b28eac50aeed6b877', 'application_catalog_api_version': '1', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', u'container_api_version': u'1', u'interface': None, u'disable_vendor_agent': {}}
defaults: {u'auth_type': 'password', u'status': u'active', u'compute_api_version': u'2', 'key': None, u'database_api_version': u'1.0', 'api_timeout': None, u'baremetal_api_version': u'1', u'image_api_version': u'2', u'metering_api_version': u'2', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': u'1', 'cacert': None, u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', u'key_manager_api_version': u'v1', 'verify': True, u'identity_api_version': u'2.0', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'container_api_version': u'1', u'dns_api_version': u'2', u'object_store_api_version': u'1', u'interface': None, u'disable_vendor_agent': {}}
cloud cfg: {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', 'key': None, u'database_api_version': u'1.0', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.0.2.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': '1', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', 'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'username': 'admin', 'project_name': 'admin', 'password': '***', 'auth_url': 'http://192.0.2.1:5000/v2.0'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'password': '***', 'application_catalog_api_version': '1', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
compute API version 2, cmd group openstack.compute.v2
network API version 2, cmd group openstack.network.v2
image API version 1, cmd group openstack.image.v1
volume API version 2, cmd group openstack.volume.v2
identity API version 2.0, cmd group openstack.identity.v2
object_store API version 1, cmd group openstack.object_store.v1
orchestration API version 1, cmd group openstack.orchestration.v1
workflow_engine API version 2, cmd group openstack.workflow_engine.v2
neutronclient API version 2, cmd group openstack.neutronclient.v2
messaging API version 2, cmd group openstack.messaging.v2
data_processing API version 1.1, cmd group openstack.data_processing.v1
baremetal_introspection API version 1, cmd group openstack.baremetal_introspection.v1
baremetal API version 1.15, cmd group openstack.baremetal.v1
alarming API version 2, cmd group openstack.alarming.v2
dns API version 2, cmd group openstack.dns.v2
tripleoclient API version 1, cmd group openstack.tripleoclient.v1
container_infra API version 1, cmd group openstack.container_infra.v1
key_manager API version 1, cmd group openstack.key_manager.v1
application_catalog API version 1, cmd group openstack.application_catalog.v1
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', u'orchestration_api_version': '1', u'database_api_version': u'1.0', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.0.2.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': '1', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', 'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'project_name': 'admin'}, 'default_domain': 'default', 'debug': True, u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', 'key': None, 'timing': False, 'password': '8bfacc42aabb9975d0676c9b28eac50aeed6b877', 'application_catalog_api_version': '1', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', u'container_api_version': u'1', u'interface': None, u'disable_vendor_agent': {}}
command: baremetal show -> ironicclient.osc.v1.baremetal_node.ShowBaremetal
Using auth plugin: password
Using parameters {'username': 'admin', 'project_name': 'admin', 'password': '***', 'auth_url': 'http://192.0.2.1:5000/v2.0'}
Get auth_ref
REQ: curl -g -i -X GET http://192.0.2.1:5000/v2.0 -H "Accept: application/json" -H "User-Agent: osc-lib keystoneauth1/2.12.1 python-requests/2.10.0 CPython/2.7.5"
Starting new HTTP connection (1): 192.0.2.1
"GET /v2.0 HTTP/1.1" 200 227
RESP: [200] Date: Fri, 14 Oct 2016 19:18:31 GMT Server: Apache/2.4.6 (Red Hat Enterprise Linux) Vary: X-Auth-Token,Accept-Encoding x-openstack-request-id: req-bfda0b41-2584-4c63-9160-c0ee41c27b3c Content-Encoding: gzip Content-Length: 227 Connection: close Content-Type: application/json 
RESP BODY: {"version": {"status": "deprecated", "updated": "2016-08-04T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://192.0.2.1:5000/v2.0/", "rel": "self"}, {"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}

Making authentication request to http://192.0.2.1:5000/v2.0/tokens
Resetting dropped connection: 192.0.2.1
"POST /v2.0/tokens HTTP/1.1" 200 1004
run(Namespace(columns=[], fields=[], formatter='table', instance_uuid=False, max_width=0, node=u'capabilities', noindent=False, prefix='', variables=[]))
This command is deprecated. Instead, use 'openstack baremetal node show'.
take_action(Namespace(columns=[], fields=[], formatter='table', instance_uuid=False, max_width=0, node=u'capabilities', noindent=False, prefix='', variables=[]))
Instantiating baremetal client: <class 'ironicclient.v1.client.Client'>
Making authentication request to http://192.0.2.1:5000/v2.0/tokens
Resetting dropped connection: 192.0.2.1
"POST /v2.0/tokens HTTP/1.1" 200 1003
REQ: curl -g -i -X GET http://192.0.2.1:6385/v1/nodes/capabilities -H "X-OpenStack-Ironic-API-Version: 1.15" -H "User-Agent: python-ironicclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}bed1308b7e9ee359fa49eca1887ad597555775b0"
Starting new HTTP connection (1): 192.0.2.1
"GET /v1/nodes/capabilities HTTP/1.1" 404 129
RESP: [404] X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Maximum-Version: 1.22 X-Openstack-Ironic-Api-Version: 1.15 Openstack-Request-Id: req-7f581731-ead6-4a86-9c50-2729e41ebb8b Content-Type: application/json Content-Length: 129 Date: Fri, 14 Oct 2016 19:18:32 GMT Connection: keep-alive 
RESP BODY: {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node capabilities could not be found.\"}"}

Node capabilities could not be found. (HTTP 404)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 387, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python2.7/site-packages/osc_lib/command/command.py", line 41, in run
    return super(Command, self).run(parsed_args)
  File "/usr/lib/python2.7/site-packages/cliff/display.py", line 100, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 988, in take_action
    return super(ShowBaremetal, self).take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 973, in take_action
    parsed_args.node, fields=fields)._info
  File "/usr/lib/python2.7/site-packages/ironicclient/v1/node.py", line 193, in get
    return self._get(resource_id=node_id, fields=fields)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 82, in _get
    return self._list(self._path(resource_id))[0]
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 154, in _list
    resp, body = self.api.json_request('GET', url)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 553, in json_request
    resp = self._http_request(url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 190, in wrapper
    return func(self, url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 535, in _http_request
    error_json.get('debuginfo'), method, url)
NotFound: Node capabilities could not be found. (HTTP 404)
clean_up ShowBaremetal: Node capabilities could not be found. (HTTP 404)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 135, in run
    ret_val = super(OpenStackShell, self).run(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 267, in run
    result = self.run_subcommand(remainder)
  File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 180, in run_subcommand
    ret_value = super(OpenStackShell, self).run_subcommand(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 387, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python2.7/site-packages/osc_lib/command/command.py", line 41, in run
    return super(Command, self).run(parsed_args)
  File "/usr/lib/python2.7/site-packages/cliff/display.py", line 100, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 988, in take_action
    return super(ShowBaremetal, self).take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 973, in take_action
    parsed_args.node, fields=fields)._info
  File "/usr/lib/python2.7/site-packages/ironicclient/v1/node.py", line 193, in get
    return self._get(resource_id=node_id, fields=fields)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 82, in _get
    return self._list(self._path(resource_id))[0]
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 154, in _list
    resp, body = self.api.json_request('GET', url)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 553, in json_request
    resp = self._http_request(url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 190, in wrapper
    return func(self, url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 535, in _http_request
    error_json.get('debuginfo'), method, url)
NotFound: Node capabilities could not be found. (HTTP 404)


I was able to find the capabilities for a particular node, but not for all nodes:

openstack baremetal node show -c properties 8c0b9d43-6db7-46f6-bc30-7ce0d9d874b7
+------------+-------------------------------------------------------------------------------------------------+
| Field      | Value                                                                                           |
+------------+-------------------------------------------------------------------------------------------------+
| properties | {u'memory_mb': u'8192', u'cpu_arch': u'x86_64', u'local_gb': u'39', u'cpus': u'2',              |
|            | u'capabilities': u'profile:compute-b634c10a-570f-59ba-bdbf-0c313d745a10,boot_option:local'}     |
+------------+-------------------------------------------------------------------------------------------------+

Comment 4 Dmitry Tantsur 2016-10-17 08:04:10 UTC
Right, this command conflicts with Ironic one (reusing namespaces for the win!), so it can only be removed now.

Comment 5 Vincent S. Cojot 2016-10-28 18:11:47 UTC
Is there a patch available?
This is much publicized in OSP8 and since it's broken in OSP9 and OSP10 I wonder if customers will ask for it.
Thanks,

Comment 7 Vincent S. Cojot 2016-10-28 18:36:56 UTC
'overcloud profiles list' doesn't seem to provide the missing information in OSP9:

[stack@instack ~]$ rpm -qi python-openstackclient-2.2.0-1.el7ost.noarch
Name        : python-openstackclient
Version     : 2.2.0
Release     : 1.el7ost
Architecture: noarch
Install Date: Fri 28 Oct 2016 01:25:18 PM EDT
Group       : Unspecified
Size        : 3312872
License     : ASL 2.0
Signature   : RSA/SHA256, Thu 07 Jul 2016 08:12:04 PM EDT, Key ID 199e2f91fd431d51
Source RPM  : python-openstackclient-2.2.0-1.el7ost.src.rpm
Build Date  : Fri 15 Apr 2016 02:55:34 PM EDT
[....]



[stack@instack ~]$ ironic node-list
+--------------------------------------+------------------+---------------+-------------+--------------------+-------------+
| UUID                                 | Name             | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------------------+---------------+-------------+--------------------+-------------+
| 6d531885-165d-4204-9a9d-ec6e23319f7e | osp-baremetal-1  | None          | power off   | manageable         | False       |
| b4ff469a-d34f-4ac9-8a88-8b8a5d288cc0 | osp-baremetal-2  | None          | power off   | manageable         | False       |
| d894ea8c-f1f4-4563-839e-0b16f23552e2 | osp-baremetal-3  | None          | power off   | manageable         | False       |
| ffe5b4a1-8a3e-48cd-959c-b5c882c83eb5 | osp-baremetal-4  | None          | power off   | manageable         | False       |
| 88c7e811-4c3c-4245-b537-da192ce94d68 | osp-baremetal-5  | None          | power off   | manageable         | False       |
| 015cebe6-2b5b-44cb-a683-350d4840083d | osp-baremetal-6  | None          | power off   | manageable         | False       |
| 3f2cbbb6-46d2-4990-be02-1911386119fe | osp-baremetal-7  | None          | power off   | manageable         | False       |
| a58d916f-b394-49be-a410-515a13b16563 | osp-baremetal-8  | None          | power off   | manageable         | False       |
| 2767b3ae-cb1a-4908-b3a3-4cc1a926b7f5 | osp-baremetal-9  | None          | power off   | manageable         | False       |
| c47c31bd-d8be-43bd-92b7-3752f1b79c4a | osp-baremetal-10 | None          | power off   | manageable         | False       |
| bced4723-1bf2-4813-a6ab-6bc2f175c10d | osp-baremetal-11 | None          | power off   | manageable         | False       |
| 65816f9f-05e8-4f04-907a-cbd99c67a4cb | osp-baremetal-12 | None          | power off   | manageable         | False       |
| 2513b059-4185-41f8-a84d-84e1fcb99cef | osp-baremetal-13 | None          | power off   | manageable         | False       |
| 0193cfba-5491-4177-8bff-1e6e48f0e5a1 | osp-baremetal-14 | None          | power off   | manageable         | False       |
| 28e5e1d1-b56c-4ea3-9c44-dbd52caa0016 | osp-baremetal-15 | None          | power off   | manageable         | False       |
| 76b53188-7d17-4f8b-b203-6626ca5bb26c | osp-baremetal-16 | None          | power off   | manageable         | False       |
+--------------------------------------+------------------+---------------+-------------+--------------------+-------------+

[stack@instack ~]$ for i in $(ironic node-list|awk '/barem/ {print $2}'); do ironic node-show $i|egrep 'capabi|name' ; done
| driver_info            | {u'ssh_username': u'vcojot', u'deploy_kernel': u'cd9c6e74-a309-46fb-   |
| name                   | osp-baremetal-1                                                        |
|                        | 4, u'capabilities': u'profile:control,boot_option:local'}              |
| driver_info            | {u'ssh_username': u'vcojot', u'deploy_kernel': u'cd9c6e74-a309-46fb-   |
| name                   | osp-baremetal-2                                                        |
|                        | 4, u'capabilities': u'profile:control,boot_option:local'}              |
| driver_info            | {u'ssh_username': u'vcojot', u'deploy_kernel': u'cd9c6e74-a309-46fb-   |
| name                   | osp-baremetal-3                                                        |
|                        | 4, u'capabilities': u'profile:control,boot_option:local'}              |
| driver_info            | {u'ssh_username': u'vcojot', u'deploy_kernel': u'cd9c6e74-a309-46fb-   |
| name                   | osp-baremetal-4                                                        |
|                        | 4, u'capabilities': u'profile:ceph-storage,boot_option:local'}         |
| driver_info            | {u'ssh_username': u'vcojot', u'deploy_kernel': u'cd9c6e74-a309-46fb-   |
| name                   | osp-baremetal-5                                                        |
|                        | 4, u'capabilities': u'profile:ceph-storage,boot_option:local'}         |
| driver_info            | {u'ssh_username': u'vcojot', u'deploy_kernel': u'cd9c6e74-a309-46fb-   |
| name                   | osp-baremetal-6                                                        |
[....]



But the result is still empty:

stack@instack ~]$ openstack overcloud profiles list

stack@instack ~]$

Comment 8 Dmitry Tantsur 2016-10-31 08:08:10 UTC
Hi (please don't keep conversation private).

We can't fix it. We can probably rename the command, but I don't see much point in it. "openstack overcloud profiles list" doesn't show your nodes probably because they're not "available", thus saving you from assuming that you actually have nodes with given profiles at your disposal. We could make a new flag ignoring the provision states, but it would be a separate RFE.

The patch https://review.openstack.org/387233 removes the "show capabilities" command from OSP 11, and will probably be backported to 10.

Comment 10 Dmitry Tantsur 2017-01-16 17:52:18 UTC
The removal was done.

Comment 12 Alexander Chuzhoy 2017-03-27 16:16:01 UTC
Environment:

python-tripleoclient-6.1.0-2.el7ost.noarch

Here's what happens now:

[stack@undercloud ~]$ openstack baremetal introspection bulk status
+--------------------------------------+----------+-------+
| Node UUID                            | Finished | Error |
+--------------------------------------+----------+-------+
| dad4469d-356a-4a43-8d90-3ba50cf7fd01 | True     | None  |
| 80ccc7f8-fdc7-4b83-8ab1-b2458c729a38 | True     | None  |
| 0c1ab5d3-7fad-4681-babc-c0059b400baa | True     | None  |
| d8810b1c-fb91-46d6-a5e6-c99ab674e26e | True     | None  |
| e03d89f3-1baa-4c5d-ba28-28a6e65b74d0 | True     | None  |
| d511c1e6-1b25-4a33-9085-473f3ab3a7f7 | True     | None  |
| 6be4c432-9a12-4f19-8df7-e6fb330a51b2 | True     | None  |
| 50de2dd4-33dc-4893-b8b1-016d386221fa | True     | None  |
+--------------------------------------+----------+-------+

[stack@undercloud ~]$ openstack  baremetal show capabilities
This command is deprecated. Instead, use 'openstack baremetal node show'.
Node capabilities could not be found. (HTTP 404)


[stack@undercloud ~]$ openstack --debug baremetal show capabilities
START with options: [u'--debug', u'baremetal', u'show', u'capabilities']
options: Namespace(access_key='', access_secret='***', access_token='***', access_token_endpoint='', access_token_type='', aodh_endpoint='', auth_type='', auth_url='http://192.168.0.1:5000/v2.0', cacert=None, cert='', client_id='', client_secret='***', cloud='', code='', consumer_key='', consumer_secret='***', debug=True, default_domain='default', default_domain_id='', default_domain_name='', deferred_help=False, discovery_endpoint='', domain_id='', domain_name='', endpoint='', glare_url='', identity_provider='', identity_provider_url='', insecure=None, inspector_api_version='1', inspector_url=None, interface='', key='', log_file=None, murano_packages_service='murano', murano_url='', old_profile=None, openid_scope='', os_alarming_api_version='2', os_application_catalog_api_version='1', os_baremetal_api_version='1.15', 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_identity_api_version='', os_image_api_version='', os_key_manager_api_version='1', os_metrics_api_version='1', os_network_api_version='', os_object_api_version='', os_orchestration_api_version='1', os_project_id=None, os_project_name=None, os_queues_api_version='2', os_tripleoclient_api_version='1', os_volume_api_version='', os_workflow_api_version='2', passcode='', password='***', profile=None, project_domain_id='', project_domain_name='', project_id='', project_name='admin', protocol='', redirect_uri='', region_name='', roles='', timing=False, token='***', trust_id='', url='', user='', user_domain_id='', user_domain_name='', user_id='', username='admin', verbose_level=3, verify=None)
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', 'key': None, u'database_api_version': '1', 'metrics_api_version': '1', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.168.0.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': u'2', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', u'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'project_name': 'admin'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'password': '***', u'application_catalog_api_version': '1', 'murano_packages_service': 'murano', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
defaults: {u'auth_type': 'password', u'status': u'active', u'compute_api_version': u'2', 'key': None, u'database_api_version': u'1.0', 'api_timeout': None, u'baremetal_api_version': u'1', u'image_api_version': u'2', u'container_infra_api_version': u'1', u'metering_api_version': u'2', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': u'1', 'cacert': None, u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', u'application_catalog_api_version': u'1', u'key_manager_api_version': u'v1', 'verify': True, u'identity_api_version': u'2.0', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'container_api_version': u'1', u'dns_api_version': u'2', u'object_store_api_version': u'1', u'interface': None, u'disable_vendor_agent': {}}
cloud cfg: {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', 'key': None, u'database_api_version': '1', 'metrics_api_version': '1', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.168.0.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': u'2', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', u'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'project_name': 'admin'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'password': '***', u'application_catalog_api_version': '1', 'murano_packages_service': 'murano', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
compute API version 2, cmd group openstack.compute.v2
network API version 2, cmd group openstack.network.v2
image API version 2, cmd group openstack.image.v2
volume API version 2, cmd group openstack.volume.v2
identity API version 2.0, cmd group openstack.identity.v2
object_store API version 1, cmd group openstack.object_store.v1
dns API version 2, cmd group openstack.dns.v2
messaging API version 2, cmd group openstack.messaging.v2
database API version 1, cmd group openstack.database.v1
metric API version 1, cmd group openstack.metric.v1
tripleoclient API version 1, cmd group openstack.tripleoclient.v1
baremetal_introspection API version 1, cmd group openstack.baremetal_introspection.v1
orchestration API version 1, cmd group openstack.orchestration.v1
container_infra API version 1, cmd group openstack.container_infra.v1
key_manager API version 1, cmd group openstack.key_manager.v1
data_processing API version 1.1, cmd group openstack.data_processing.v1
neutronclient API version 2, cmd group openstack.neutronclient.v2
baremetal API version 1.15, cmd group openstack.baremetal.v1
application_catalog API version 1, cmd group openstack.application_catalog.v1
workflow_engine API version 2, cmd group openstack.workflow_engine.v2
alarming API version 2, cmd group openstack.alarming.v2
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', 'key': None, u'database_api_version': '1', 'metrics_api_version': '1', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.168.0.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': u'2', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', u'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'project_name': 'admin'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'password': '***', u'application_catalog_api_version': '1', 'murano_packages_service': 'murano', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', 'key': None, u'database_api_version': '1', 'metrics_api_version': '1', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.168.0.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': u'2', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', u'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'project_name': 'admin'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'password': '***', u'application_catalog_api_version': '1', 'murano_packages_service': 'murano', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
command: baremetal show -> ironicclient.osc.v1.baremetal_node.ShowBaremetal
Auth plugin password selected
auth_config_hook(): {'auth_type': 'password', 'beta_command': False, 'tripleoclient_api_version': '1', u'compute_api_version': u'2', 'key': None, u'database_api_version': '1', 'metrics_api_version': '1', 'data_processing_api_version': '1.1', 'inspector_api_version': '1', 'auth_url': 'http://192.168.0.1:5000/v2.0', u'network_api_version': u'2', u'message': u'', u'image_format': u'qcow2', 'networks': [], u'image_api_version': u'2', 'verify': True, u'dns_api_version': '2', u'object_store_api_version': u'1', 'username': 'admin', u'container_infra_api_version': '1', 'verbose_level': 3, 'region_name': '', 'api_timeout': None, u'baremetal_api_version': '1.15', 'queues_api_version': '2', 'auth': {'project_name': 'admin'}, 'default_domain': 'default', u'container_api_version': u'1', u'image_api_use_tasks': False, u'floating_ip_source': u'neutron', u'orchestration_api_version': '1', 'timing': False, 'password': '***', u'application_catalog_api_version': '1', 'murano_packages_service': 'murano', 'cacert': None, u'key_manager_api_version': '1', u'metering_api_version': u'2', 'deferred_help': False, u'identity_api_version': u'2.0', 'workflow_api_version': '2', u'volume_api_version': u'2', 'cert': None, u'secgroup_source': u'neutron', u'status': u'active', 'alarming_api_version': '2', 'debug': True, u'interface': None, u'disable_vendor_agent': {}}
Using auth plugin: password
Using parameters {'username': 'admin', 'password': '***', 'project_name': 'admin', 'auth_url': 'http://192.168.0.1:5000/v2.0'}
Get auth_ref
REQ: curl -g -i -X GET http://192.168.0.1:5000/v2.0 -H "Accept: application/json" -H "User-Agent: osc-lib/1.3.0 keystoneauth1/2.18.0 python-requests/2.11.1 CPython/2.7.5"
Starting new HTTP connection (1): 192.168.0.1
"GET /v2.0 HTTP/1.1" 200 231
RESP: [200] Date: Mon, 27 Mar 2017 15:08:59 GMT Server: Apache Vary: X-Auth-Token,Accept-Encoding x-openstack-request-id: req-d7dee59d-14ac-4aae-ae45-1fe34d7484be Content-Encoding: gzip Content-Length: 231 Connection: close Content-Type: application/json 
RESP BODY: {"version": {"status": "deprecated", "updated": "2016-08-04T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://192.168.0.1:5000/v2.0/", "rel": "self"}, {"href": "https://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}

GET call to None for http://192.168.0.1:5000/v2.0 used request id req-d7dee59d-14ac-4aae-ae45-1fe34d7484be
Making authentication request to http://192.168.0.1:5000/v2.0/tokens
Resetting dropped connection: 192.168.0.1
"POST /v2.0/tokens HTTP/1.1" 200 1404
run(Namespace(columns=[], fields=[], formatter='table', instance_uuid=False, max_width=0, node=u'capabilities', noindent=False, prefix='', print_empty=False, variables=[]))
This command is deprecated. Instead, use 'openstack baremetal node show'.
take_action(Namespace(columns=[], fields=[], formatter='table', instance_uuid=False, max_width=0, node=u'capabilities', noindent=False, prefix='', print_empty=False, variables=[]))
Instantiating baremetal client: <class 'ironicclient.v1.client.Client'>
Baremetal API version: 1.9
Making authentication request to http://192.168.0.1:5000/v2.0/tokens
Resetting dropped connection: 192.168.0.1
"POST /v2.0/tokens HTTP/1.1" 200 1392
REQ: curl -g -i -X GET http://192.168.0.1:6385/v1/nodes/capabilities -H "X-OpenStack-Ironic-API-Version: 1.15" -H "User-Agent: python-ironicclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}a222c73cbb57bad2e8a7cbfe711373e70cda2cbd"
Starting new HTTP connection (1): 192.168.0.1
"GET /v1/nodes/capabilities HTTP/1.1" 404 129
RESP: [404] X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Maximum-Version: 1.31 X-Openstack-Ironic-Api-Version: 1.15 Openstack-Request-Id: req-e20427d0-6452-4e3b-92d3-2a115f50e54f Content-Type: application/json Content-Length: 129 Date: Mon, 27 Mar 2017 15:09:01 GMT Connection: keep-alive 
RESP BODY: {"error_message": "{\"debuginfo\": null, \"faultcode\": \"Client\", \"faultstring\": \"Node capabilities could not be found.\"}"}

Node capabilities could not be found. (HTTP 404)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 400, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python2.7/site-packages/osc_lib/command/command.py", line 41, in run
    return super(Command, self).run(parsed_args)
  File "/usr/lib/python2.7/site-packages/cliff/display.py", line 112, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 1080, in take_action
    return super(ShowBaremetal, self).take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 1061, in take_action
    parsed_args.node, fields=fields)._info
  File "/usr/lib/python2.7/site-packages/ironicclient/v1/node.py", line 195, in get
    return self._get(resource_id=node_id, fields=fields)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 88, in _get
    return self._list(self._path(resource_id))[0]
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 174, in _list
    resp, body = self.api.json_request('GET', url)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 552, in json_request
    resp = self._http_request(url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 190, in wrapper
    return func(self, url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 534, in _http_request
    error_json.get('debuginfo'), method, url)
NotFound: Node capabilities could not be found. (HTTP 404)
clean_up ShowBaremetal: Node capabilities could not be found. (HTTP 404)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 135, in run
    ret_val = super(OpenStackShell, self).run(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 279, in run
    result = self.run_subcommand(remainder)
  File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 180, in run_subcommand
    ret_value = super(OpenStackShell, self).run_subcommand(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 400, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python2.7/site-packages/osc_lib/command/command.py", line 41, in run
    return super(Command, self).run(parsed_args)
  File "/usr/lib/python2.7/site-packages/cliff/display.py", line 112, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 1080, in take_action
    return super(ShowBaremetal, self).take_action(parsed_args)
  File "/usr/lib/python2.7/site-packages/ironicclient/osc/v1/baremetal_node.py", line 1061, in take_action
    parsed_args.node, fields=fields)._info
  File "/usr/lib/python2.7/site-packages/ironicclient/v1/node.py", line 195, in get
    return self._get(resource_id=node_id, fields=fields)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 88, in _get
    return self._list(self._path(resource_id))[0]
  File "/usr/lib/python2.7/site-packages/ironicclient/common/base.py", line 174, in _list
    resp, body = self.api.json_request('GET', url)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 552, in json_request
    resp = self._http_request(url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 190, in wrapper
    return func(self, url, method, **kwargs)
  File "/usr/lib/python2.7/site-packages/ironicclient/common/http.py", line 534, in _http_request
    error_json.get('debuginfo'), method, url)
NotFound: Node capabilities could not be found. (HTTP 404)

END return value: 1

Comment 13 Alexander Chuzhoy 2017-03-27 16:58:24 UTC
Showing results from:
openstack baremetal node show -c properties <NODEID>

and
openstack overcloud profiles list


[stack@undercloud ~]$ ironic node-list
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| UUID                                 | Name | Instance UUID | Power State | Provisioning State | Maintenance |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
| d8386bd8-e6ae-4c02-a89c-f39de81cbf28 | None | None          | power off   | available          | False       |
| 8e62f92d-67ef-4e7d-8df6-524d82049aa9 | None | None          | power off   | available          | False       |
| 98e461d2-ad6c-405c-90ed-c3026a8a84e2 | None | None          | power off   | available          | False       |
| 41bf1384-435b-4987-84a0-c79bd4bf6ae5 | None | None          | power off   | available          | False       |
| 8c4070dd-2dca-4afa-8bb3-0ca5ac11e7f7 | None | None          | power off   | available          | False       |
| 2e3af9da-b837-4544-a157-7951913c4c0c | None | None          | power off   | available          | False       |
| b4e147f5-15b6-4f2c-8923-ac5d2f63c7ca | None | None          | power off   | available          | False       |
| b114d48f-898c-4cf3-81eb-96dc64b9e7ac | None | None          | power off   | available          | False       |
+--------------------------------------+------+---------------+-------------+--------------------+-------------+
[stack@undercloud ~]$ openstack baremetal node show -c properties d8386bd8-e6ae-4c02-a89c-f39de81cbf28
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field      | Value                                                                                                                                                                                              |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| properties | {u'memory_mb': u'49152', u'cpu_arch': u'x86_64', u'local_gb': u'464', u'cpus': u'12', u'capabilities':                                                                                             |
|            | u'profile:control,cpu_hugepages:true,cpu_txt:true,boot_option:local,cpu_aes:true,cpu_vt:true,cpu_hugepages_1g:true'}                                                                               |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[stack@undercloud ~]$ openstack overcloud profiles list
+--------------------------------------+-----------+-----------------+-----------------+-----------------------+
| Node UUID                            | Node Name | Provision State | Current Profile | Possible Profiles     |
+--------------------------------------+-----------+-----------------+-----------------+-----------------------+
| d8386bd8-e6ae-4c02-a89c-f39de81cbf28 |           | available       | control         |                       |
| 8e62f92d-67ef-4e7d-8df6-524d82049aa9 |           | available       | control         |                       |
| 98e461d2-ad6c-405c-90ed-c3026a8a84e2 |           | available       | control         |                       |
| 41bf1384-435b-4987-84a0-c79bd4bf6ae5 |           | available       | compute         |                       |
| 8c4070dd-2dca-4afa-8bb3-0ca5ac11e7f7 |           | available       | ceph-storage    | ceph-storage, compute |
| 2e3af9da-b837-4544-a157-7951913c4c0c |           | available       | ceph-storage    | ceph-storage, compute |
| b4e147f5-15b6-4f2c-8923-ac5d2f63c7ca |           | available       | None            | ceph-storage, compute |
| b114d48f-898c-4cf3-81eb-96dc64b9e7ac |           | available       | None            | ceph-storage, compute |
+--------------------------------------+-----------+-----------------+-----------------+-----------------------+

Comment 14 Alexander Chuzhoy 2017-04-03 13:32:50 UTC
Verifying based on comment #13

Use "openstack baremetal node show -c properties <NODEID>" instead of "openstack baremetal show capabilities".

Comment 15 errata-xmlrpc 2017-05-17 19:31:56 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, 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-2017:1245