summaryrefslogtreecommitdiffstats
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
parentb024dcf6f0c1e5a2735e84d21d6edef5ff38d1cf (diff)
getting ready to push for merge prop
-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
-rwxr-xr-xplugins/xenserver/xenapi/etc/xapi.d/plugins/agent4
5 files changed, 24 insertions, 21 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):
diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent b/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent
index 244509f3f..ab5b98d1c 100755
--- a/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent
+++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/agent
@@ -161,7 +161,7 @@ def key_init(self, arg_dict):
pretend = SimpleDH(secret=PRETEND_SECRET)
shared = pretend.compute_shared(pub)
# Simulate the agent's response
- ret = {"returncode": "D0", "message": "%s", "shared": "%s"} % (pretend.get_public(), shared)
+ ret = {"returncode": "D0", "message": pretend.get_public(), "shared": shared}
return ret
arg_dict["path"] = "data/host/%s" % request_id
xenstore.write_record(self, arg_dict)
@@ -187,7 +187,7 @@ def password(self, arg_dict):
pretend = SimpleDH(secret=PRETEND_SECRET)
pretend.compute_shared(pub)
pw = pretend.decrypt(enc_pass)
- ret = {"returncode": "0", "message": "%s"} % pw
+ ret = {"returncode": "0", "message": pw}
return ret
arg_dict["value"] = json.dumps({"name": "password", "value": enc_pass})
request_id = arg_dict["id"]