summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorEd Leafe <ed@leafe.com>2011-01-07 10:23:48 -0600
committerEd Leafe <ed@leafe.com>2011-01-07 10:23:48 -0600
commiteaa5b5994891eee0280b750dff221a4b54932eb9 (patch)
tree806a0911d288421933003ca22c8ee81ee9a38662 /nova
parentb024dcf6f0c1e5a2735e84d21d6edef5ff38d1cf (diff)
downloadnova-eaa5b5994891eee0280b750dff221a4b54932eb9.tar.gz
nova-eaa5b5994891eee0280b750dff221a4b54932eb9.tar.xz
nova-eaa5b5994891eee0280b750dff221a4b54932eb9.zip
getting ready to push for merge prop
Diffstat (limited to 'nova')
-rw-r--r--nova/api/openstack/servers.py4
-rw-r--r--nova/compute/api.py18
-rw-r--r--nova/compute/manager.py3
-rw-r--r--nova/virt/xenapi/vmops.py16
4 files changed, 22 insertions, 19 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index a426a721d..280e2349e 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -104,7 +104,7 @@ class Controller(wsgi.Controller):
def show(self, req, id):
""" Returns server details by server id """
try:
- instance = self.compute_api.get_instance(
+ instance = self.compute_api.get(
req.environ['nova.context'], id)
return _translate_detail_keys(instance)
except exception.NotFound:
@@ -158,7 +158,7 @@ class Controller(wsgi.Controller):
try:
# The ID passed in is actually the internal_id of the
# instance, not the value of the id column in the DB.
- instance = self.compute_api.get_instance(ctxt, id)
+ instance = self.compute_api.get(ctxt, id)
self.compute_api.update(ctxt, instance.id, **update_dict)
except exception.NotFound:
return faults.Fault(exc.HTTPNotFound())
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 78ffcca7a..106c3f7f0 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -61,7 +61,7 @@ class API(base.Base):
def get_network_topic(self, context, instance_id):
try:
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
except exception.NotFound, e:
logging.warning("Instance %d was not found in get_network_topic",
instance_id)
@@ -220,7 +220,7 @@ class API(base.Base):
def delete(self, context, instance_id):
logging.debug('Going to try and terminate %s' % instance_id)
try:
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
except exception.NotFound, e:
logging.warning(_('Instance % was not found during terminate'),
instance_id)
@@ -246,7 +246,7 @@ class API(base.Base):
else:
self.db.instance_destroy(context, instance_id)
- def get_instance(self, context, instance_id):
+ def get(self, context, instance_id):
"""Get a single instance with the given ID."""
return self.db.instance_get_by_id(context, instance_id)
@@ -272,7 +272,7 @@ class API(base.Base):
def _cast_compute_message(self, method, context, instance_id):
"""Generic handler for RPC calls to compute."""
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
host = instance['host']
rpc.cast(context,
self.db.queue_get_for(context, FLAGS.compute_topic, host),
@@ -328,7 +328,7 @@ class API(base.Base):
lock the instance with instance_id
"""
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
host = instance['host']
rpc.cast(context,
self.db.queue_get_for(context, FLAGS.compute_topic, host),
@@ -340,7 +340,7 @@ class API(base.Base):
unlock the instance with instance_id
"""
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
host = instance['host']
rpc.cast(context,
self.db.queue_get_for(context, FLAGS.compute_topic, host),
@@ -352,7 +352,7 @@ class API(base.Base):
return the boolean state of (instance with instance_id)'s lock
"""
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
return instance['locked']
def attach_volume(self, context, instance_id, volume_id, device):
@@ -360,7 +360,7 @@ class API(base.Base):
raise exception.ApiError(_("Invalid device specified: %s. "
"Example device: /dev/vdb") % device)
self.volume_api.check_attach(context, volume_id)
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
host = instance['host']
rpc.cast(context,
self.db.queue_get_for(context, FLAGS.compute_topic, host),
@@ -383,6 +383,6 @@ class API(base.Base):
return instance
def associate_floating_ip(self, context, instance_id, address):
- instance = self.get_instance(context, instance_id)
+ instance = self.get(context, instance_id)
self.network_api.associate_floating_ip(context, address,
instance['fixed_ip'])
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 10219833b..5d677b023 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -289,8 +289,6 @@ class ComputeManager(manager.Manager):
"""Set the root/admin password for an instance on this server."""
context = context.elevated()
instance_ref = self.db.instance_get(context, instance_id)
- self._update_state(context, instance_id)
-
if instance_ref['state'] != power_state.RUNNING:
logging.warn('trying to reset the password on a non-running '
'instance: %s (state: %s expected: %s)',
@@ -303,6 +301,7 @@ class ComputeManager(manager.Manager):
if new_pass is None:
# Generate a random password
new_pass = self._generate_password(FLAGS.password_length)
+
self.driver.set_admin_password(instance_ref, new_pass)
self._update_state(context, instance_id)
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 5f1654a49..3df561e7c 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -137,13 +137,17 @@ class VMOps(object):
return instance_or_vm
else:
# Must be the instance name
- instance_name = instance_or_vm
- except AttributeError:
- # Not a string; must be a vm instance
- instance_name = instance_or_vm.name
- vm = VMHelper.lookup(self._session, instance_name)
+ instance = instance_or_vm
+ except (AttributeError, KeyError):
+ # Note the the KeyError will only happen with fakes.py
+ # Not a string; must be an ID or a vm instance
+ if isinstance(instance_or_vm, (int, long)):
+ instance = instance_or_vm
+ else:
+ instance = instance_or_vm.name
+ vm = VMHelper.lookup(self._session, instance)
if vm is None:
- raise Exception(_('Instance not present %s') % instance_name)
+ raise Exception(_('Instance not present %s') % instance)
return vm
def snapshot(self, instance, name):