diff options
| author | Vishvananda Ishaya <vishvananda@gmail.com> | 2010-07-20 22:28:23 -0500 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@gmail.com> | 2010-07-20 22:28:23 -0500 |
| commit | 1b6efa80e19a60d71a762683fa1edee02645355c (patch) | |
| tree | ecc9d1c089f7afb215ad19645a8eea8a5ae32bde | |
| parent | a232ba0fda12a98e9da4345a6911a86b68f91826 (diff) | |
| download | nova-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.py | 26 |
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') |
