diff options
| author | Vishvananda Ishaya <vishvananda@gmail.com> | 2010-07-23 02:57:21 +0000 |
|---|---|---|
| committer | Tarmac <> | 2010-07-23 02:57:21 +0000 |
| commit | 809a1fe80b9922a36c64bce948588a5797cae87b (patch) | |
| tree | 2d65a04081b7ae0f7c8ed38fb70b87c84d20a287 | |
| parent | 295eff7794d2d04c65760513baf7927067c61a6e (diff) | |
| parent | 1b6efa80e19a60d71a762683fa1edee02645355c (diff) | |
Fixes problem with describe-addresses returning all public ips instead of the ones for just the user's project
| -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') |
