Bug 1508474

Summary: [OSP10 backport] Create volume from image displays incorrect AZs
Product: Red Hat OpenStack Reporter: Aviv Guetta <aguetta>
Component: python-django-horizonAssignee: Beth White <beth.white>
Status: CLOSED ERRATA QA Contact: Ido Ovadia <iovadia>
Severity: medium Docs Contact:
Priority: high    
Version: 10.0 (Newton)CC: aguetta, apannu, athomas, beth.white, dcadzow, jbuchta, mlopes, mrunge, mschuppe, pcaruana, rdopiera, srevivo
Target Milestone: z7Keywords: FeatureBackport, Triaged, ZStream
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-django-horizon-10.0.5-8.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1511436 1511438 1511439 (view as bug list) Environment:
Last Closed: 2018-02-27 16:39:23 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:    
Bug Blocks: 1511436, 1511438, 1511439    

Description Aviv Guetta 2017-11-01 13:56:01 UTC
Description of problem:
This is a backport request for the following upstream Horizon bug:
https://bugs.launchpad.net/charm-openstack-dashboard/+bug/1721286
Fix commit:
https://review.openstack.org/#/c/513763/

Description from upstream bug:

Running openstack-origin cloud:ocata-xenial on stable/17.08 charms, we have an environment with the following Nova availability zones:
  west-java-1a
  west-java-1b
  west-java-1c
When going to the Images tab of the project in Horizon, and selecting the far-right drop-down menu for any image and selecting "Create Volume" we are presented with a dialog which includes an Availability Zone drop-down which lists the above three AZs, none of which have a cinder-api or cinder-volume host residing within. When trying to create a volume from an instance on this dashboard, we get the error:

Invalid input received: Availability zone 'west-java-1a' is invalid. (HTTP 400)

When using Launch Instance with Create New Image = Yes, from same Image on the Images tab, we still get the same AZ dropdowns, but the system initializes the new volume and attaches to a running instance in that AZ properly.

Also, when using the Volumes tab and pressing the Create New Volume button, we can create a volume from any image, and the Availability Zone in this dialog only shows the "nova" AZ.

To re-create, build openstack ocata-xenial with three computes, one in each of 3 new AZs, cinder-api, cinder-ceph, and a minimal ceph cluster, all with defaults and load image into glance either with glance-simplestreams-sync or other method. Click into Horizon's Images tab of admin project and click the drop-down of an image and select Create Volume. Fill out the form, you should only see the 3 new AZs but no nova AZ for creation of the volume, it should give the 404 error.

You'll notice that you might have the following availability zones:
openstack availability zone list
+--------------+-------------+
| Zone Name | Zone Status |
+--------------+-------------+
| internal | available |
| west-java-1a | available |
| west-java-1b | available |
| west-java-1c | available |
| nova | available |
| nova | available |
| nova | available |
+--------------+-------------+

This 404 error is coming from the cinder api and has nothing to do with glance/images. It's simply that cinder's availability zone is "nova" and the nova aggregate-based availability zones should not be used in a cinder availability zone pull-down on the Images tab Create Volume dialog.

jujumanage@cmg01z00infr001:~/charms/cinder$ openstack volume create --availability-zone nova --size 50 foo
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2017-10-04T15:37:34.804855 |
| description | None |
| encrypted | False |
| id | ca32eb14-60f8-42c8-a5ef-d7687d25d606 |
| migration_status | None |
| multiattach | False |
| name | foo |
| properties | |
| replication_status | None |
| size | 50 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| type | None |
| updated_at | None |
| user_id | b327544aba2a482b9f12f1e6e615c394 |
+---------------------+--------------------------------------+
jujumanage@cmg01z00infr001:~/charms/cinder$ openstack volume create --availability-zone west-java-1a --size 50 foo
Invalid input received: Availability zone 'west-java-1a' is invalid. (HTTP 400) (Request-ID: req-2f7d7d00-f361-4772-9f71-66e4ebaefdc3)

Version-Release number of selected component (if applicable):
Red Hat Openstack Platform 10

Comment 2 Beth White 2017-11-08 16:25:29 UTC
This has already landed upstream in current master, stable/pike and stable/ocata.

Comment 18 Radomir Dopieralski 2018-02-21 18:31:44 UTC
I verified that the "nova" availability zone now appears in the "create volume" wizard, and that the availability zones created with host aggregates are not displayed in version python-django-horizon-10.0.5-8.el7ost

Comment 20 errata-xmlrpc 2018-02-27 16:39:23 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/RHBA-2018:0361