diff options
| author | Michael Still <mikal@stillhq.com> | 2012-06-07 11:16:23 +1000 |
|---|---|---|
| committer | Michael Still <mikal@stillhq.com> | 2012-06-07 15:26:03 +1000 |
| commit | fe5706cb973e1cddecdeed9580fc9d9bbdc848fd (patch) | |
| tree | 688ad9fa7cb5817fc5b66385a408eb54dfcc91f6 /nova/console | |
| parent | 7b7febb02b37420c759eab59b07c7e3e2de9bab1 (diff) | |
| download | nova-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.py | 40 | ||||
| -rw-r--r-- | nova/console/manager.py | 7 | ||||
| -rw-r--r-- | nova/console/vmrc_manager.py | 2 |
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, |
