fake mode working with new novaclient create_server_volume method

This commit is contained in:
Craig
2012-08-21 17:27:56 -05:00
committed by Tim Simpson
parent 52a78960f5
commit 3c268f707c
3 changed files with 17 additions and 4 deletions
etc/reddwarf
reddwarf
taskmanager
tests
fakes

@@ -78,6 +78,7 @@ agent_call_low_timeout = 5
agent_call_high_timeout = 100
server_delete_time_out=10
use_nova_server_volume = True
# ============ notifer queue kombu connection options ========================

@@ -47,7 +47,7 @@ from reddwarf.instance.views import get_ip_address
LOG = logging.getLogger(__name__)
use_nova_server_volume = config.Config.get_bool('use_nova_server_volume',
default='False')
default=False)
class FreshInstanceTasks(FreshInstance):
@@ -102,7 +102,7 @@ class FreshInstanceTasks(FreshInstance):
# Record the server ID and volume ID in case something goes wrong.
self.update_db(compute_instance_id=server.id, volume_id=volume_id)
except Exception as e:
msg = "Error creating server for instance."
msg = "Error creating server and volume for instance."
err = inst_models.InstanceTasks.BUILDING_ERROR_SERVER
self._log_and_raise(e, msg, err)

@@ -107,10 +107,14 @@ class FakeServer(object):
# fake value in this class's initializer.
self._local_id = self.next_local_id
self.next_local_id += 1
info_vols = []
for volume in self.volumes:
info_vols.append({'id':volume.id})
volume.set_attachment(id)
self.host = "fake_host"
self._info = {'os:volumes':info_vols}
@property
def addresses(self):
return {"private": [{"addr":"123.123.123.123"}]}
@@ -207,9 +211,16 @@ class FakeServers(object):
return self.context.is_admin or \
server.owner.tenant == self.context.tenant
def create(self, name, image_id, flavor_ref, files, block_device_mapping):
def create(self, name, image_id, flavor_ref, files=None, block_device_mapping=None, volume=None):
id = "FAKE_%s" % uuid.uuid4()
volumes = self._get_volumes_from_bdm(block_device_mapping)
if volume:
client = FakeClient(self.context)
volume = client.volumes.create(volume['size'], volume['name'], volume['description'])
mapping = "%s::%s:%s" % (volume.id, volume.size, 1)
block_device_mapping = { 'vdb': mapping }
volumes = [volume]
else:
volumes = self._get_volumes_from_bdm(block_device_mapping)
server = FakeServer(self, self.context, id, name, image_id, flavor_ref,
block_device_mapping, volumes)
self.db[id] = server
@@ -417,6 +428,7 @@ class FakeVolumes(object):
return [self.db[key] for key in self.db]
def resize(self, volume_id, new_size):
LOG.debug("Resize volume id (%s) to size (%s)" % (volume_id, new_size))
volume = self.get(volume_id)
def finish_resize():