Public bug reported:

I am performing some tests with Keystone and multiple regions and have
discovered that nova client does not respect the --region argument
correctly.

Setup:
======

I have defined services within two regions:
- regionOne
- regionTwo

Tests:
======

# Ask for all endpoints
$ nova endpoints

Found more than one valid endpoint. Use a more restrictive filter
ERROR: AmbiguousEndpoints: [{u'adminURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'region': 
u'regionOne', 'serviceName': u'nova', u'internalURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'publicURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb'}, {u'adminURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'region': 
u'regionTwo', 'serviceName': u'nova', u'internalURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'publicURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb'}]

# I expect this as there are multiple regions
# Ask for all endpoints in a region that does not exist
$ nova --region doesnotexist endpoints
Could not find any suitable endpoint. Correct region?
ERROR:

# Good. This is correct.
# Ask for a region that does exist.
$ nova --region regionOne endpoints
+-------------+-------------------------------------------------------------+
|     nova    |                            Value                            |
+-------------+-------------------------------------------------------------+
| adminURL    | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
| internalURL | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
| publicURL   | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
| region      | regionOne                                                   |
| serviceName | nova                                                        |
+-------------+-------------------------------------------------------------+

[...]

# Good. This looks correct.
# Ask for endpoints in the second region.
$ nova --region regionTwo endpoints
+-------------+-------------------------------------------------------------+
|     nova    |                            Value                            |
+-------------+-------------------------------------------------------------+
| adminURL    | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
| internalURL | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
| publicURL   | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
| region      | regionOne                                                   |
+-------------+-------------------------------------------------------------+

[...]

# This is _not_ correct! I asked for regionTwo and received regionOne
instead!

System Setup:
=============

$ dpkg-query --show python-novaclient keystone
keystone                2012.1-0ubuntu1
python-novaclient       2012.1-0ubuntu1

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu precise (development branch)"

** Affects: nova (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: canonistack

** Description changed:

  I am performing some tests with Keystone and multiple regions and have
  discovered that nova client does not respect the --region argument
  correctly.
- 
  
  Setup:
  ======
  
  I have defined services within two regions:
  - regionOne
  - regionTwo
- 
  
  Tests:
  ======
  
  # Ask for all endpoints
  $ nova endpoints
  
  Found more than one valid endpoint. Use a more restrictive filter
  ERROR: AmbiguousEndpoints: [{u'adminURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'region': 
u'regionOne', 'serviceName': u'nova', u'internalURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'publicURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb'}, {u'adminURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'region': 
u'regionTwo', 'serviceName': u'nova', u'internalURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb', u'publicURL': 
u'http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb'}]
  
  # I expect this as there are multiple regions
  # Ask for all endpoints in a region that does not exist
  $ nova --region doesnotexist endpoints
  Could not find any suitable endpoint. Correct region?
  ERROR:
  
  # Good. This is correct.
  # Ask for a region that does exist.
  $ nova --region regionOne endpoints
  +-------------+-------------------------------------------------------------+
  |     nova    |                            Value                            |
  +-------------+-------------------------------------------------------------+
  | adminURL    | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
  | internalURL | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
  | publicURL   | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
  | region      | regionOne                                                   |
  | serviceName | nova                                                        |
  +-------------+-------------------------------------------------------------+
  
  [...]
  
  # Good. This looks correct.
  # Ask for endpoints in the second region.
- # nova --region regionTwo endpoints
+ $ nova --region regionTwo endpoints
  +-------------+-------------------------------------------------------------+
  |     nova    |                            Value                            |
  +-------------+-------------------------------------------------------------+
  | adminURL    | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
  | internalURL | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
  | publicURL   | http://localhost:8774/v1.1/defc27df9a0b4ef8a9d727f4277dbdeb |
  | region      | regionOne                                                   |
  +-------------+-------------------------------------------------------------+
  
  [...]
  
  # This is _not_ correct! I asked for regionTwo and received regionOne
  instead!
  
  System Setup:
  =============
  
  $ dpkg-query --show python-novaclient keystone
  keystone                2012.1-0ubuntu1
  python-novaclient       2012.1-0ubuntu1
  
- $ cat /etc/lsb-release 
+ $ cat /etc/lsb-release
  DISTRIB_ID=Ubuntu
  DISTRIB_RELEASE=12.04
  DISTRIB_CODENAME=precise
  DISTRIB_DESCRIPTION="Ubuntu precise (development branch)"

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/980930

Title:
  nova client does not respect regions

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/nova/+bug/980930/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to