[Bug 980930] [NEW] nova client does not respect regions

2012-04-13 Thread Andrew Glen-Young
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
keystone2012.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   | 

[Bug 980930] [NEW] nova client does not respect regions

2012-04-13 Thread Andrew Glen-Young
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
keystone2012.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   |