61
61
def test_instance_get_all_by_filters(self):
62
62
args = {'reservation_id': 'a', 'image_ref': 1, 'host': 'host1'}
63
inst1 = db.instance_create(self.context, args)
64
inst2 = db.instance_create(self.context, args)
63
db.instance_create(self.context, args)
64
db.instance_create(self.context, args)
65
65
result = db.instance_get_all_by_filters(self.context, {})
66
66
self.assertTrue(2, len(result))
90
90
# Ensure one migration older than 10 seconds is returned.
91
91
updated_at = datetime.datetime(2000, 01, 01, 12, 00, 00)
92
values = {"status": "FINISHED", "updated_at": updated_at}
92
values = {"status": "finished", "updated_at": updated_at}
93
93
migration = db.migration_create(ctxt, values)
94
94
results = db.migration_get_all_unconfirmed(ctxt, 10)
95
95
self.assertEqual(1, len(results))
98
98
# Ensure the new migration is not returned.
99
99
updated_at = datetime.datetime.utcnow()
100
values = {"status": "FINISHED", "updated_at": updated_at}
100
values = {"status": "finished", "updated_at": updated_at}
101
101
migration = db.migration_create(ctxt, values)
102
102
results = db.migration_get_all_unconfirmed(ctxt, 10)
103
103
self.assertEqual(0, len(results))
136
136
db_network = db.network_get(ctxt, network.id)
137
137
self.assertEqual(network.uuid, db_network.uuid)
139
def test_network_delete_safe(self):
140
ctxt = context.get_admin_context()
141
values = {'host': 'localhost', 'project_id': 'project1'}
142
network = db.network_create_safe(ctxt, values)
143
db_network = db.network_get(ctxt, network.id)
144
values = {'network_id': network['id'], 'address': 'fake1'}
145
address1 = db.fixed_ip_create(ctxt, values)
146
values = {'network_id': network['id'],
149
address2 = db.fixed_ip_create(ctxt, values)
150
self.assertRaises(exception.NetworkInUse,
151
db.network_delete_safe, ctxt, network['id'])
152
db.fixed_ip_update(ctxt, address2, {'allocated': False})
153
network = db.network_delete_safe(ctxt, network['id'])
154
self.assertRaises(exception.FixedIpNotFoundForAddress,
155
db.fixed_ip_get_by_address, ctxt, address1)
156
ctxt = ctxt.elevated(read_deleted='yes')
157
fixed_ip = db.fixed_ip_get_by_address(ctxt, address1)
158
self.assertTrue(fixed_ip['deleted'])
139
160
def test_network_create_with_duplicate_vlan(self):
140
161
ctxt = context.get_admin_context()
141
162
values1 = {'host': 'localhost', 'project_id': 'project1', 'vlan': 1}
149
170
ctxt = context.get_admin_context()
151
172
# Create an instance with some metadata
152
metadata = {'host': 'foo'}
153
values = {'metadata': metadata}
173
values = {'metadata': {'host': 'foo'},
174
'system_metadata': {'original_image_ref': 'blah'}}
154
175
instance = db.instance_create(ctxt, values)
156
177
# Update the metadata
157
metadata = {'host': 'bar'}
158
values = {'metadata': metadata}
178
values = {'metadata': {'host': 'bar'},
179
'system_metadata': {'original_image_ref': 'baz'}}
159
180
db.instance_update(ctxt, instance.id, values)
161
# Retrieve the metadata to ensure it was successfully updated
182
# Retrieve the user-provided metadata to ensure it was successfully
162
184
instance_meta = db.instance_metadata_get(ctxt, instance.id)
163
185
self.assertEqual('bar', instance_meta['host'])
187
# Retrieve the system metadata to ensure it was successfully updated
188
system_meta = db.instance_system_metadata_get(ctxt, instance.uuid)
189
self.assertEqual('baz', system_meta['original_image_ref'])
165
191
def test_instance_update_with_instance_uuid(self):
166
192
""" test instance_update() works when an instance UUID is passed """
167
193
ctxt = context.get_admin_context()
169
195
# Create an instance with some metadata
170
metadata = {'host': 'foo'}
171
values = {'metadata': metadata}
196
values = {'metadata': {'host': 'foo'},
197
'system_metadata': {'original_image_ref': 'blah'}}
172
198
instance = db.instance_create(ctxt, values)
174
200
# Update the metadata
175
metadata = {'host': 'bar'}
176
values = {'metadata': metadata}
201
values = {'metadata': {'host': 'bar'},
202
'system_metadata': {'original_image_ref': 'baz'}}
177
203
db.instance_update(ctxt, instance.uuid, values)
179
# Retrieve the metadata to ensure it was successfully updated
205
# Retrieve the user-provided metadata to ensure it was successfully
180
207
instance_meta = db.instance_metadata_get(ctxt, instance.id)
181
208
self.assertEqual('bar', instance_meta['host'])
210
# Retrieve the system metadata to ensure it was successfully updated
211
system_meta = db.instance_system_metadata_get(ctxt, instance.uuid)
212
self.assertEqual('baz', system_meta['original_image_ref'])
183
214
def test_instance_fault_create(self):
184
215
"""Ensure we can create an instance fault"""
185
216
ctxt = context.get_admin_context()
484
515
ctxt = context.get_admin_context()
485
516
result = _create_aggregate(context=ctxt, metadata=None)
486
517
db.aggregate_delete(ctxt, result['id'])
487
expected = db.aggregate_get_all(ctxt, read_deleted='no')
518
expected = db.aggregate_get_all(ctxt)
488
519
self.assertEqual(0, len(expected))
489
aggregate = db.aggregate_get(ctxt, result['id'], read_deleted='yes')
520
aggregate = db.aggregate_get(ctxt.elevated(read_deleted='yes'),
490
522
self.assertEqual(aggregate["operational_state"], "dismissed")
492
524
def test_aggregate_update(self):
554
586
values=values, metadata=None))
555
587
for c in xrange(1, remove_counter):
556
588
db.aggregate_delete(ctxt, aggregates[c - 1].id)
557
results = db.aggregate_get_all(ctxt, read_deleted='no')
589
results = db.aggregate_get_all(ctxt)
558
590
self.assertEqual(len(results), add_counter - remove_counter)
560
592
def test_aggregate_metadata_add(self):
612
644
host = _get_fake_aggr_hosts()[0]
613
645
db.aggregate_host_delete(ctxt, result.id, host)
614
646
db.aggregate_host_add(ctxt, result.id, host)
615
expected = db.aggregate_host_get_all(ctxt, result.id,
647
expected = db.aggregate_host_get_all(ctxt, result.id)
617
648
self.assertEqual(len(expected), 1)
619
650
def test_aggregate_host_add_duplicate_raise_conflict(self):
650
681
result = _create_aggregate_with_hosts(context=ctxt, metadata=None)
651
682
db.aggregate_host_delete(ctxt, result.id,
652
683
_get_fake_aggr_hosts()[0])
653
expected = db.aggregate_host_get_all(ctxt, result.id,
684
expected = db.aggregate_host_get_all(ctxt, result.id)
655
685
self.assertEqual(0, len(expected))
657
687
def test_aggregate_host_delete_raise_not_found(self):
700
730
self.assertEquals(item.free_ram_mb, 1024 - 256)
702
732
def test_compute_node_set(self):
703
item = self._create_helper('host1')
733
self._create_helper('host1')
705
735
x = db.compute_node_utilization_set(self.ctxt, 'host1',
706
736
free_ram_mb=2048, free_disk_gb=4096)