Merge "blueprint host-aggregates: improvements and clean-up"
This commit is contained in:
@@ -338,6 +338,15 @@ class AggregateDBApiTestCase(test.TestCase):
|
|||||||
result = _create_aggregate(metadata=None)
|
result = _create_aggregate(metadata=None)
|
||||||
self.assertEqual(result['operational_state'], 'created')
|
self.assertEqual(result['operational_state'], 'created')
|
||||||
|
|
||||||
|
def test_aggregate_create_avoid_name_conflict(self):
|
||||||
|
"""Test we can avoid conflict on deleted aggregates."""
|
||||||
|
r1 = _create_aggregate(metadata=None)
|
||||||
|
db.aggregate_delete(context.get_admin_context(), r1.id)
|
||||||
|
values = {'name': r1.name, 'availability_zone': 'new_zone'}
|
||||||
|
r2 = _create_aggregate(values=values)
|
||||||
|
self.assertEqual(r2.name, values['name'])
|
||||||
|
self.assertEqual(r2.availability_zone, values['availability_zone'])
|
||||||
|
|
||||||
def test_aggregate_create_raise_exist_exc(self):
|
def test_aggregate_create_raise_exist_exc(self):
|
||||||
"""Ensure aggregate names are distinct."""
|
"""Ensure aggregate names are distinct."""
|
||||||
_create_aggregate(metadata=None)
|
_create_aggregate(metadata=None)
|
||||||
@@ -383,6 +392,20 @@ class AggregateDBApiTestCase(test.TestCase):
|
|||||||
self.assertEqual(_get_fake_aggr_hosts(), expected.hosts)
|
self.assertEqual(_get_fake_aggr_hosts(), expected.hosts)
|
||||||
self.assertEqual(_get_fake_aggr_metadata(), expected.metadetails)
|
self.assertEqual(_get_fake_aggr_metadata(), expected.metadetails)
|
||||||
|
|
||||||
|
def test_aggregate_get_by_host(self):
|
||||||
|
"""Ensure we can get an aggregate by host."""
|
||||||
|
ctxt = context.get_admin_context()
|
||||||
|
r1 = _create_aggregate_with_hosts(context=ctxt)
|
||||||
|
r2 = db.aggregate_get_by_host(ctxt, 'foo.openstack.org')
|
||||||
|
self.assertEqual(r1.id, r2.id)
|
||||||
|
|
||||||
|
def test_aggregate_get_by_host_not_found(self):
|
||||||
|
"""Ensure AggregateHostNotFound is raised with unknown host."""
|
||||||
|
ctxt = context.get_admin_context()
|
||||||
|
_create_aggregate_with_hosts(context=ctxt)
|
||||||
|
self.assertRaises(exception.AggregateHostNotFound,
|
||||||
|
db.aggregate_get_by_host, ctxt, 'unknown_host')
|
||||||
|
|
||||||
def test_aggregate_delete_raise_not_found(self):
|
def test_aggregate_delete_raise_not_found(self):
|
||||||
"""Ensure AggregateNotFound is raised when deleting an aggregate."""
|
"""Ensure AggregateNotFound is raised when deleting an aggregate."""
|
||||||
ctxt = context.get_admin_context()
|
ctxt = context.get_admin_context()
|
||||||
|
|||||||
@@ -1757,10 +1757,13 @@ class XenAPIAggregateTestCase(test.TestCase):
|
|||||||
'Dom0IptablesFirewallDriver',
|
'Dom0IptablesFirewallDriver',
|
||||||
host='host')
|
host='host')
|
||||||
xenapi_fake.reset()
|
xenapi_fake.reset()
|
||||||
|
host_ref = xenapi_fake.get_all('host')[0]
|
||||||
stubs.stubout_session(self.stubs, stubs.FakeSessionForVMTests)
|
stubs.stubout_session(self.stubs, stubs.FakeSessionForVMTests)
|
||||||
self.context = context.get_admin_context()
|
self.context = context.get_admin_context()
|
||||||
self.conn = xenapi_conn.get_connection(False)
|
self.conn = xenapi_conn.get_connection(False)
|
||||||
self.fake_metadata = {'master_compute': 'host'}
|
self.fake_metadata = {'master_compute': 'host',
|
||||||
|
'host': xenapi_fake.get_record('host',
|
||||||
|
host_ref)['uuid']}
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
super(XenAPIAggregateTestCase, self).tearDown()
|
super(XenAPIAggregateTestCase, self).tearDown()
|
||||||
@@ -1871,7 +1874,7 @@ class XenAPIAggregateTestCase(test.TestCase):
|
|||||||
aggregate = self._aggregate_setup(aggr_state=aggregate_states.ACTIVE,
|
aggregate = self._aggregate_setup(aggr_state=aggregate_states.ACTIVE,
|
||||||
hosts=['host', 'host2'],
|
hosts=['host', 'host2'],
|
||||||
metadata=self.fake_metadata)
|
metadata=self.fake_metadata)
|
||||||
self.assertRaises(exception.AggregateError,
|
self.assertRaises(exception.InvalidAggregateAction,
|
||||||
self.conn._pool.remove_from_aggregate,
|
self.conn._pool.remove_from_aggregate,
|
||||||
self.context, aggregate, "host")
|
self.context, aggregate, "host")
|
||||||
|
|
||||||
|
|||||||
@@ -202,6 +202,12 @@ class FakeSessionForVMTests(fake.SessionBase):
|
|||||||
vm['is_a_template'] = False
|
vm['is_a_template'] = False
|
||||||
vm['is_control_domain'] = False
|
vm['is_control_domain'] = False
|
||||||
vm['domid'] = random.randrange(1, 1 << 16)
|
vm['domid'] = random.randrange(1, 1 << 16)
|
||||||
|
return vm
|
||||||
|
|
||||||
|
def VM_start_on(self, _1, vm_ref, host_ref, _2, _3):
|
||||||
|
vm_rec = self.VM_start(_1, vm_ref, _2, _3)
|
||||||
|
host_rec = fake.get_record('host', host_ref)
|
||||||
|
vm_rec['resident_on'] = host_rec['uuid']
|
||||||
|
|
||||||
def VM_snapshot(self, session_ref, vm_ref, label):
|
def VM_snapshot(self, session_ref, vm_ref, label):
|
||||||
status = "Running"
|
status = "Running"
|
||||||
@@ -334,7 +340,7 @@ class FakeSessionForVolumeFailedTests(FakeSessionForVolumeTests):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class FakeSessionForMigrationTests(fake.SessionBase):
|
class FakeSessionForMigrationTests(FakeSessionForVMTests):
|
||||||
"""Stubs out a XenAPISession for Migration tests"""
|
"""Stubs out a XenAPISession for Migration tests"""
|
||||||
def __init__(self, uri):
|
def __init__(self, uri):
|
||||||
super(FakeSessionForMigrationTests, self).__init__(uri)
|
super(FakeSessionForMigrationTests, self).__init__(uri)
|
||||||
@@ -342,16 +348,6 @@ class FakeSessionForMigrationTests(fake.SessionBase):
|
|||||||
def VDI_get_by_uuid(self, *args):
|
def VDI_get_by_uuid(self, *args):
|
||||||
return 'hurr'
|
return 'hurr'
|
||||||
|
|
||||||
def VM_start(self, _1, ref, _2, _3):
|
|
||||||
vm = fake.get_record('VM', ref)
|
|
||||||
if vm['power_state'] != 'Halted':
|
|
||||||
raise fake.Failure(['VM_BAD_POWER_STATE', ref, 'Halted',
|
|
||||||
vm['power_state']])
|
|
||||||
vm['power_state'] = 'Running'
|
|
||||||
vm['is_a_template'] = False
|
|
||||||
vm['is_control_domain'] = False
|
|
||||||
vm['domid'] = random.randrange(1, 1 << 16)
|
|
||||||
|
|
||||||
def VM_set_name_label(self, *args):
|
def VM_set_name_label(self, *args):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user