tests: Replace use of CONF with monkey patching

Per the docs, the 'nova-console' service is "a XenAPI-specific service
that most recent VNC proxy architectures do not use." [1] This service
provides a config option - 'console_driver' - which only has two valid
values, one of which was a fake used in testing.

There are better ways to stub out code during tests that by setting
configuration options, namely through the use of monkey patching. Do
this, paving the way for deprecation and eventual removal of this
configuration option.

[1] https://github.com/openstack/openstack-manuals/tree/4b1e8f1/doc\
    /admin-guide/source/compute-remote-console-access.rst

Change-Id: Ibfc957c40dafb1ecb35b8658ab92b922b1f39a1a
This commit is contained in:
Stephen Finucane
2016-12-07 14:54:03 +00:00
parent 45f14c2018
commit dbbad4fc54
4 changed files with 14 additions and 7 deletions

View File

@@ -1,52 +0,0 @@
# Copyright (c) 2010 OpenStack Foundation
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Fake ConsoleProxy driver for tests."""
class FakeConsoleProxy(object):
"""Fake ConsoleProxy driver."""
@property
def console_type(self):
return 'fake'
def setup_console(self, context, console):
"""Sets up actual proxies."""
pass
def teardown_console(self, context, console):
"""Tears down actual proxies."""
pass
def init_host(self):
"""Start up any config'ed consoles on start."""
pass
def generate_password(self, length=8):
"""Returns random console password."""
return 'fakepass'
def get_port(self, context):
"""Get available port for consoles that need one."""
return 5999
def fix_pool_password(self, password):
"""Trim password to length, and any other messaging."""
return password
def fix_console_password(self, password):
"""Trim password to length, and any other messaging."""
return password

View File

@@ -17,10 +17,10 @@
from oslo_log import log as logging
import oslo_messaging as messaging
from oslo_utils import importutils
from nova.compute import rpcapi as compute_rpcapi
import nova.conf
from nova.console import xvp
from nova import exception
from nova.i18n import _LI
from nova import manager
@@ -41,10 +41,8 @@ class ConsoleProxyManager(manager.Manager):
target = messaging.Target(version='2.0')
def __init__(self, console_driver=None, *args, **kwargs):
if not console_driver:
console_driver = CONF.console_driver
self.driver = importutils.import_object(console_driver)
def __init__(self, *args, **kwargs):
self.driver = xvp.XVPConsoleProxy()
super(ConsoleProxyManager, self).__init__(service_name='console',
*args, **kwargs)
self.driver.host = self.host