Bug 1463729

Summary: Wrong profile is set to a node assigned to object storage role
Product: Red Hat OpenStack Reporter: Beth White <beth.white>
Component: openstack-tripleo-heat-templatesAssignee: Christian Schwede (cschwede) <cschwede>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Abrams <mabrams>
Severity: high Docs Contact:
Priority: high    
Version: 11.0 (Ocata)CC: akrivoka, beth.white, jjoyce, jpichon, jschluet, mabrams, mburns, rhel-osp-director-maint, scohen, slinaber, tvignaud
Target Milestone: ---Keywords: Triaged, ZStream
Target Release: 11.0 (Ocata)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1455504 Environment:
Last Closed: 2018-03-29 09:53:08 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:
Bug Depends On: 1455504    
Bug Blocks:    

Description Beth White 2017-06-21 15:12:36 UTC
+++ This bug was initially created as a clone of Bug #1455504 +++

Description of problem:
Attempting to deploy an overcloud with object storage (e.g swift)
A node assigned to the role gets wrong profile.
Assigning a node to Object storage role should set 'swift-storage' profile in nodes capabilities

Version-Release number of selected component (if applicable):
openstack-tripleo-ui-3.1.0-9.el7ost.noarch

How reproducible:
always

Steps to Reproduce:
1. register nodes
2. assign nodes to controller, compute and object storage roles
3. attempt to deploy

Actual results:
Deployment failed with no valid host was found
The node assigned to object storage role got 'profile:object-storage' instead 'swift-storage'. 

Expected results:
'profile:swift-storage' is set in nodes capabilities

Additional info:

There is no 'object-storage' flavor. 

[stack@ironic-0 ~]$ ironic node-list
/usr/lib/python2.7/site-packages/requests/packages/urllib3/connection.py:303: SubjectAltNameWarning: Certificate for 192.168.24.2 has no `subjectAltName`, falling back to check for a `commonName` for now. This feature is being removed by major browsers and deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 for details.)
  SubjectAltNameWarning
/usr/lib/python2.7/site-packages/requests/packages/urllib3/connection.py:303: SubjectAltNameWarning: Certificate for 192.168.24.2 has no `subjectAltName`, falling back to check for a `commonName` for now. This feature is being removed by major browsers and deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 for details.)
  SubjectAltNameWarning
+--------------------------------------+--------------+--------------------------------------+-------------+--------------------+-------------+
| UUID                                 | Name         | Instance UUID                        | Power State | Provisioning State | Maintenance |
+--------------------------------------+--------------+--------------------------------------+-------------+--------------------+-------------+
| 5f2a23ae-e44e-4ca9-9fae-2c3b6e9791c7 | ceph-0       | None                                 | power on    | manageable         | False       |
| cee30c7a-55bc-4931-bfcb-be94993c4718 | controller-0 | 9b160b92-4a90-4796-b19c-d99db891c374 | power on    | active             | False       |
| 06cc75bf-0a56-4e16-aa7e-0b4caebe6e74 | controller-1 | None                                 | power on    | available          | False       |
| f936eec7-dc43-4602-8da9-03c5dc45f1db | controller-2 | None                                 | power on    | available          | False       |
| 3c13622f-57e7-4918-ae12-f8fb11bf735f | compute-0    | c509ee0d-91a3-441f-b033-22214221d1e2 | power on    | active             | False       |
| 90604f44-d0ea-475b-8d7d-0dc854fa5fdc | compute-1    | None                                 | power on    | available          | False       |
| 55ed76f4-6f62-4eb4-8ac1-8e248a92d310 | compute-2    | None                                 | power on    | available          | False       |
+--------------------------------------+--------------+--------------------------------------+-------------+--------------------+-------------+
 
 
[stack@ironic-0 ~]$ openstack overcloud profiles list
+--------------------------------------+--------------+-----------------+-----------------+-------------------+
| Node UUID                            | Node Name    | Provision State | Current Profile | Possible Profiles |
+--------------------------------------+--------------+-----------------+-----------------+-------------------+
| cee30c7a-55bc-4931-bfcb-be94993c4718 | controller-0 | active          | control         |                   |
| 06cc75bf-0a56-4e16-aa7e-0b4caebe6e74 | controller-1 | available       | None            |                   |
| f936eec7-dc43-4602-8da9-03c5dc45f1db | controller-2 | available       | object-storage  |                   |
| 3c13622f-57e7-4918-ae12-f8fb11bf735f | compute-0    | active          | compute         |                   |
| 90604f44-d0ea-475b-8d7d-0dc854fa5fdc | compute-1    | available       | None            |                   |
| 55ed76f4-6f62-4eb4-8ac1-8e248a92d310 | compute-2    | available       | None            |                   |
+--------------------------------------+--------------+-----------------+-----------------+-------------------+
[stack@ironic-0 ~]$ openstack flavor list
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| ID                                   | Name          |  RAM | Disk | Ephemeral | VCPUs | Is Public |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
| 07cb8ec3-f35f-4b6c-98f1-0df39ed6d9ab | compute       | 4096 |   40 |         0 |     1 | True      |
| 13e6a6c8-e90a-4ba8-8c26-f0ef91446a6c | control       | 4096 |   40 |         0 |     1 | True      |
| 1666f5ca-9899-4bd7-987a-12f3577ec0eb | ceph-storage  | 4096 |   40 |         0 |     1 | True      |
| 240e1c98-47db-4ca4-9b70-ffb9f7a9c2b8 | baremetal     | 4096 |   40 |         0 |     1 | True      |
| 3bcbbc0c-86d8-4ca6-abf7-aa735dec40aa | swift-storage | 4096 |   40 |         0 |     1 | True      |
| e41b0218-e669-460d-a5a1-ee48efb37fda | block-storage | 4096 |   40 |         0 |     1 | True      |
+--------------------------------------+---------------+------+------+-----------+-------+-----------+
 
$ openstack baremetal node show f936eec7-dc43-4602-8da9-03c5dc45f1db
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                  | Value                                                                                                                                                                                  |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| chassis_uuid           | None                                                                                                                                                                                   |
| clean_step             | {}                                                                                                                                                                                     |
| console_enabled        | False                                                                                                                                                                                  |
| created_at             | 2017-05-17T13:13:55+00:00                                                                                                                                                              |
| driver                 | pxe_ssh                                                                                                                                                                                |
| driver_info            | {u'ssh_username': u'stack', u'deploy_kernel': u'eb441b10-1817-4135-b425-37f38273d849', u'deploy_ramdisk': u'62194b71-6520-4da0-b881-c6277a317fa9', u'ssh_key_contents': u'******',     |
|                        | u'ssh_virt_type': u'virsh', u'ssh_address': u'172.16.0.1'}                                                                                                                             |
| driver_internal_info   | {u'agent_url': u'http://192.168.24.7:9999', u'root_uuid_or_disk_id': u'2a59886b-5268-41e5-b37f-c92611eabd96', u'is_whole_disk_image': False}                                           |
| extra                  | {}                                                                                                                                                                                     |
| inspection_finished_at | None                                                                                                                                                                                   |
| inspection_started_at  | None                                                                                                                                                                                   |
| instance_info          | {}                                                                                                                                                                                     |
| instance_uuid          | None                                                                                                                                                                                   |
| last_error             | None                                                                                                                                                                                   |
| maintenance            | False                                                                                                                                                                                  |
| maintenance_reason     | None                                                                                                                                                                                   |
| name                   | controller-2                                                                                                                                                                           |
| power_state            | power on                                                                                                                                                                               |
| properties             | {u'memory_mb': u'32013', u'cpu_arch': u'x86_64', u'local_gb': u'42', u'cpus': u'1', u'capabilities': u'profile:object-storage,boot_option:local'}                                      |
| provision_state        | available                                                                                                                                                                              |
| provision_updated_at   | 2017-05-21T15:41:26+00:00                                                                                                                                                              |
| raid_config            | {}                                                                                                                                                                                     |
| reservation            | None                                                                                                                                                                                   |
| states                 | [{u'href': u'http://192.168.24.2:13385/v1/nodes/f936eec7-dc43-4602-8da9-03c5dc45f1db/states', u'rel': u'self'}, {u'href':                                                              |
|                        | u'http://192.168.24.2:13385/nodes/f936eec7-dc43-4602-8da9-03c5dc45f1db/states', u'rel': u'bookmark'}]                                                                                  |
| target_power_state     | None                                                                                                                                                                                   |
| target_provision_state | None                                                                                                                                                                                   |
| target_raid_config     | {}                                                                                                                                                                                     |
| updated_at             | 2017-05-21T16:27:43+00:00                                                                                                                                                              |
| uuid                   | f936eec7-dc43-4602-8da9-03c5dc45f1db                                                                                                                                                   |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+


Tested Workaround :
While tagging a node , choose "Specify Custom Profile" in "Tag nodes into Profiles" popup window , and write "swift-storage" and deploy.
Note: The node won't be visible as assigned to Object Storage role but deployment will succeed.

--- Additional comment from Julie Pichon on 2017-05-25 08:12:06 EDT ---

We fixed something similar in the past via https://review.openstack.org/#/c/403901/ . I wonder if we may be using a different function/action to assign tags and profiles nowadays, that needs to be updated as well?