summaryrefslogtreecommitdiffstats
path: root/nova/console
diff options
context:
space:
mode:
authorMichael Still <mikal@stillhq.com>2012-06-07 11:16:23 +1000
committerMichael Still <mikal@stillhq.com>2012-06-07 15:26:03 +1000
commitfe5706cb973e1cddecdeed9580fc9d9bbdc848fd (patch)
tree688ad9fa7cb5817fc5b66385a408eb54dfcc91f6 /nova/console
parent7b7febb02b37420c759eab59b07c7e3e2de9bab1 (diff)
downloadnova-fe5706cb973e1cddecdeed9580fc9d9bbdc848fd.tar.gz
nova-fe5706cb973e1cddecdeed9580fc9d9bbdc848fd.tar.xz
nova-fe5706cb973e1cddecdeed9580fc9d9bbdc848fd.zip
Convert consoles to use instance uuid.
Continued work on blueprint finish-uuid-conversion. Change-Id: I4032419d66e9bbb17b770d8974a92a136bf9c5d2
Diffstat (limited to 'nova/console')
-rw-r--r--nova/console/api.py40
-rw-r--r--nova/console/manager.py7
-rw-r--r--nova/console/vmrc_manager.py2
3 files changed, 25 insertions, 24 deletions
diff --git a/nova/console/api.py b/nova/console/api.py
index fa0836d44..46718a49e 100644
--- a/nova/console/api.py
+++ b/nova/console/api.py
@@ -34,29 +34,29 @@ class API(base.Base):
def __init__(self, **kwargs):
super(API, self).__init__(**kwargs)
- def get_consoles(self, context, instance_id):
- instance_id = self._translate_uuid_if_necessary(context, instance_id)
- return self.db.console_get_all_by_instance(context, instance_id)
+ def get_consoles(self, context, instance_uuid):
+ instance_id = self._translate_uuid_if_necessary(context, instance_uuid)
+ return self.db.console_get_all_by_instance(context, instance_uuid)
- def get_console(self, context, instance_id, console_id):
- instance_id = self._translate_uuid_if_necessary(context, instance_id)
- return self.db.console_get(context, console_id, instance_id)
+ def get_console(self, context, instance_id, console_uuid):
+ instance_id = self._translate_uuid_if_necessary(context, instance_uuid)
+ return self.db.console_get(context, console_id, instance_uuid)
- def delete_console(self, context, instance_id, console_id):
- instance_id = self._translate_uuid_if_necessary(context, instance_id)
- console = self.db.console_get(context, console_id, instance_id)
+ def delete_console(self, context, instance_id, console_uuid):
+ instance_id = self._translate_uuid_if_necessary(context, instance_uuid)
+ console = self.db.console_get(context, console_id, instance_uuid)
topic = rpc.queue_get_for(context, FLAGS.console_topic,
pool['host'])
rpcapi = console_rpcapi.ConsoleAPI(topic=topic)
rpcapi.remove_console(context, console['id'])
- def create_console(self, context, instance_id):
+ def create_console(self, context, instance_uuid):
#NOTE(mdragon): If we wanted to return this the console info
# here, as we would need to do a call.
# They can just do an index later to fetch
# console info. I am not sure which is better
# here.
- instance = self._get_instance(context, instance_id)
+ instance = self._get_instance(context, instance_uuid)
topic = self._get_console_topic(context, instance['host']),
rpcapi = console_rpcapi.ConsoleAPI(topic=topic)
rpcapi.add_console(context, instance['id'])
@@ -65,15 +65,15 @@ class API(base.Base):
rpcapi = compute_rpcapi.ComputeAPI()
return rpcapi.get_console_topic(context, instance_host)
- def _translate_uuid_if_necessary(self, context, instance_id):
- if utils.is_uuid_like(instance_id):
- instance = self.db.instance_get_by_uuid(context, instance_id)
- instance_id = instance['id']
- return instance_id
+ def _translate_id_if_necessary(self, context, instance_uuid):
+ if not utils.is_uuid_like(instance_uuid):
+ instance = self.db.instance_get(context, instance_uuid)
+ instance_uuid = instance['uuid']
+ return instance_uuid
- def _get_instance(self, context, instance_id):
- if utils.is_uuid_like(instance_id):
- instance = self.db.instance_get_by_uuid(context, instance_id)
+ def _get_instance(self, context, instance_uuid):
+ if utils.is_uuid_like(instance_uuid):
+ instance = self.db.instance_get_by_uuid(context, instance_uuid)
else:
- instance = self.db.instance_get(context, instance_id)
+ instance = self.db.instance_get(context, instance_uuid)
return instance
diff --git a/nova/console/manager.py b/nova/console/manager.py
index cc2c71d41..bc5894290 100644
--- a/nova/console/manager.py
+++ b/nova/console/manager.py
@@ -75,8 +75,8 @@ class ConsoleProxyManager(manager.Manager):
pool = self.get_pool_for_instance_host(context, host)
try:
console = self.db.console_get_by_pool_instance(context,
- pool['id'],
- instance_id)
+ pool['id'],
+ instance['uuid'])
except exception.NotFound:
LOG.debug(_('Adding console'), instance=instance)
if not password:
@@ -84,13 +84,14 @@ class ConsoleProxyManager(manager.Manager):
if not port:
port = self.driver.get_port(context)
console_data = {'instance_name': name,
- 'instance_id': instance_id,
+ 'instance_uuid': instance['uuid'],
'password': password,
'pool_id': pool['id']}
if port:
console_data['port'] = port
console = self.db.console_create(context, console_data)
self.driver.setup_console(context, console)
+
return console['id']
@exception.wrap_exception()
diff --git a/nova/console/vmrc_manager.py b/nova/console/vmrc_manager.py
index 996ed2afd..cb6fd51ad 100644
--- a/nova/console/vmrc_manager.py
+++ b/nova/console/vmrc_manager.py
@@ -99,7 +99,7 @@ class ConsoleVMRCManager(manager.Manager):
try:
console = self.db.console_get_by_pool_instance(context,
pool['id'],
- instance_id)
+ instance['uuid'])
if self.driver.is_otp():
console = self._generate_console(context,
pool,