summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2010-07-20 22:28:23 -0500
committerVishvananda Ishaya <vishvananda@gmail.com>2010-07-20 22:28:23 -0500
commit1b6efa80e19a60d71a762683fa1edee02645355c (patch)
treeecc9d1c089f7afb215ad19645a8eea8a5ae32bde
parenta232ba0fda12a98e9da4345a6911a86b68f91826 (diff)
downloadnova-1b6efa80e19a60d71a762683fa1edee02645355c.tar.gz
nova-1b6efa80e19a60d71a762683fa1edee02645355c.tar.xz
nova-1b6efa80e19a60d71a762683fa1edee02645355c.zip
fix for describe addresses showing everyone's public ips
-rw-r--r--nova/endpoint/cloud.py26
1 files changed, 13 insertions, 13 deletions
diff --git a/nova/endpoint/cloud.py b/nova/endpoint/cloud.py
index 3b7b4804b..4fa9b5afd 100644
--- a/nova/endpoint/cloud.py
+++ b/nova/endpoint/cloud.py
@@ -453,21 +453,21 @@ class CloudController(object):
def format_addresses(self, context):
addresses = []
- # TODO(vish): move authorization checking into network.py
for address in self.network.host_objs:
- #logging.debug(address_record)
- address_rv = {
- 'public_ip': address['address'],
- 'instance_id' : address.get('instance_id', 'free')
- }
- if context.user.is_admin():
- address_rv['instance_id'] = "%s (%s, %s)" % (
- address['instance_id'],
- address['user_id'],
- address['project_id'],
- )
+ # TODO(vish): implement a by_project iterator for addresses
+ if (context.user.is_admin() or
+ address['project_id'] == self.project.id):
+ address_rv = {
+ 'public_ip': address['address'],
+ 'instance_id' : address.get('instance_id', 'free')
+ }
+ if context.user.is_admin():
+ address_rv['instance_id'] = "%s (%s, %s)" % (
+ address['instance_id'],
+ address['user_id'],
+ address['project_id'],
+ )
addresses.append(address_rv)
- # logging.debug(addresses)
return {'addressesSet': addresses}
@rbac.allow('netadmin')