summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjaypipes@gmail.com <>2010-10-27 14:55:01 -0400
committerjaypipes@gmail.com <>2010-10-27 14:55:01 -0400
commit213b9987365c4b336b63e08e1ca187a43d00fa3d (patch)
treeab33bdd58c9438303d4b5bf34c008a6270f67394
parent79acdcca7d37e81d626be7a3369394ef9dface1b (diff)
downloadnova-213b9987365c4b336b63e08e1ca187a43d00fa3d.tar.gz
nova-213b9987365c4b336b63e08e1ca187a43d00fa3d.tar.xz
nova-213b9987365c4b336b63e08e1ca187a43d00fa3d.zip
OK, let's try this one more time.
-rw-r--r--nova/api/ec2/cloud.py13
-rw-r--r--nova/api/openstack/servers.py4
-rw-r--r--nova/compute/manager.py16
3 files changed, 14 insertions, 19 deletions
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index 9084958a1..7b6144ba5 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -837,13 +837,11 @@ class CloudController(object):
for num in range(num_instances):
- instance_data = base_options
-
instance_ref = self.compute_manager.create_instance(context,
- instance_data,
security_groups,
mac_address=utils.generate_mac(),
- launch_index=num)
+ launch_index=num,
+ **base_options)
inst_id = instance_ref['id']
internal_id = instance_ref['internal_id']
@@ -851,7 +849,6 @@ class CloudController(object):
self.compute_manager.update_instance(context,
inst_id,
- instance_ref,
hostname=ec2_id)
# TODO(vish): This probably should be done in the scheduler
@@ -903,8 +900,10 @@ class CloudController(object):
'state': 0,
'terminated_at': now}
self.compute_manager.update_instance(context,
- instance_ref['id'],
- updated_data)
+ instance_ref['id'],
+ state_description='terminating',
+ state=0,
+ terminated_at=now)
# FIXME(ja): where should network deallocate occur?
address = db.instance_get_floating_address(context,
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index e1a254d4e..1d8aa2fa4 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -246,11 +246,11 @@ class Controller(wsgi.Controller):
inst['mac_address'] = utils.generate_mac()
inst['launch_index'] = 0
- ref = self.compute_manager.create_instance(ctxt, inst)
+ ref = self.compute_manager.create_instance(ctxt, **inst)
inst['id'] = ref['internal_id']
inst['hostname'] = str(ref['internal_id'])
- self.compute_manager.update_instance(ctxt, inst['id'], inst)
+ self.compute_manager.update_instance(ctxt, inst['id'], **inst)
address = self.network_manager.allocate_fixed_ip(ctxt,
inst['id'])
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index c04dd213a..7cdd6b110 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -69,13 +69,11 @@ class ComputeManager(manager.Manager):
def refresh_security_group(self, context, security_group_id, **_kwargs):
yield self.driver.refresh_security_group(security_group_id)
- def create_instance(self, context, instance_data, security_groups=[],
- **kwargs):
+ def create_instance(self, context, security_groups=[], **kwargs):
"""Creates the instance in the datastore and returns the
new instance as a mapping
:param context: The security context
- :param instance_data: mapping of instance options
:param security_groups: list of security group ids to
attach to the instance
:param **kwargs: All additional keyword args are treated
@@ -86,23 +84,22 @@ class ComputeManager(manager.Manager):
that has just been created
"""
- instance_data.update(kwargs)
- instance_ref = self.db.instance_create(context, instance_data)
+ instance_ref = self.db.instance_create(context, kwargs)
inst_id = instance_ref['id']
elevated = context.elevated()
+ security_groups = kwargs.get('security_groups', [])
for security_group_id in security_groups:
self.db.instance_add_security_group(elevated,
inst_id,
security_group_id)
return instance_ref
- def update_instance(self, context, instance_id, instance_data,
- **kwargs):
+ def update_instance(self, context, instance_id, **kwargs):
"""Updates the instance in the datastore
:param context: The security context
- :param instance_data: mapping of instance options
+ :param instance_id: ID of the instance to update
:param **kwargs: All additional keyword args are treated
as data fields of the instance to be
updated
@@ -110,8 +107,7 @@ class ComputeManager(manager.Manager):
:retval None
"""
- instance_data.update(kwargs)
- self.db.instance_update(context, instance_id, instance_data)
+ self.db.instance_update(context, instance_id, kwargs)
@defer.inlineCallbacks
@exception.wrap_exception