Fix repr of FloatingIPBulk

While creating floting ip range returned by API object doesn't contains
attribute 'address', but repr tries to get it. So change list to return
objects of FloatingIP and add repr to FloatingIP,
also changed repr of FloatingIpRange to return actual range of addresses

Closes-bug: #1437244
Change-Id: Ia9e30a3f3d82fa8dde113b40d2da372bf1e7a086
This commit is contained in:
Eugeniya Kudryashova 2015-03-27 13:00:07 +02:00
parent 5a6f8717f7
commit d614dbcab9
3 changed files with 15 additions and 8 deletions

View File

@ -16,7 +16,7 @@
from novaclient.tests.unit.fixture_data import client
from novaclient.tests.unit.fixture_data import floatingips as data
from novaclient.tests.unit import utils
from novaclient.v2 import floating_ips_bulk
from novaclient.v2 import floating_ips
class FloatingIPsBulkTest(utils.FixturedTestCase):
@ -27,13 +27,13 @@ class FloatingIPsBulkTest(utils.FixturedTestCase):
def test_list_floating_ips_bulk(self):
fl = self.cs.floating_ips_bulk.list()
self.assert_called('GET', '/os-floating-ips-bulk')
[self.assertIsInstance(f, floating_ips_bulk.FloatingIP)
[self.assertIsInstance(f, floating_ips.FloatingIP)
for f in fl]
def test_list_floating_ips_bulk_host_filter(self):
fl = self.cs.floating_ips_bulk.list('testHost')
self.assert_called('GET', '/os-floating-ips-bulk/testHost')
[self.assertIsInstance(f, floating_ips_bulk.FloatingIP)
[self.assertIsInstance(f, floating_ips.FloatingIP)
for f in fl]
def test_create_floating_ips_bulk(self):

View File

@ -24,6 +24,9 @@ class FloatingIP(base.Resource):
"""
self.manager.delete(self)
def __repr__(self):
return "<FloatingIP: %s>" % self.address
class FloatingIPManager(base.ManagerWithFind):
resource_class = FloatingIP

View File

@ -17,25 +17,29 @@
Bulk Floating IPs interface
"""
from novaclient import base
from novaclient.v2 import floating_ips
class FloatingIP(base.Resource):
class FloatingIPRange(base.Resource):
def __repr__(self):
return "<FloatingIP: %s>" % self.address
return "<FloatingIPRange: %s>" % self.ip_range
class FloatingIPBulkManager(base.ManagerWithFind):
resource_class = FloatingIP
resource_class = FloatingIPRange
def list(self, host=None):
"""
List all floating IPs
"""
if host is None:
return self._list('/os-floating-ips-bulk', 'floating_ip_info')
return self._list('/os-floating-ips-bulk',
'floating_ip_info',
obj_class=floating_ips.FloatingIP)
else:
return self._list('/os-floating-ips-bulk/%s' % host,
'floating_ip_info')
'floating_ip_info',
obj_class=floating_ips.FloatingIP)
def create(self, ip_range, pool=None, interface=None):
"""