Merge "Add V3 Test to get Spice & RDP console of server"

This commit is contained in:
Jenkins
2014-05-09 21:58:53 +00:00
committed by Gerrit Code Review
4 changed files with 64 additions and 2 deletions

View File

@@ -405,6 +405,14 @@
# as [nova.vnc]->vnc_enabled in nova.conf (boolean value)
#vnc_console=false
# Enable Spice console. This configuration value should be
# same as [nova.spice]->enabled in nova.conf (boolean value)
#spice_console=false
# Enable RDP console. This configuration value should be same
# as [nova.rdp]->enabled in nova.conf (boolean value)
#rdp_console=false
[dashboard]

View File

@@ -14,6 +14,7 @@
# under the License.
import testtools
import urlparse
from tempest.api.compute import base
from tempest.common.utils import data_utils
@@ -420,6 +421,12 @@ class ServerActionsV3Test(base.BaseV3ComputeTest):
self.assertEqual(202, resp.status)
self.servers_client.wait_for_server_status(self.server_id, 'ACTIVE')
def _validate_url(self, url):
valid_scheme = ['http', 'https']
parsed_url = urlparse.urlparse(url)
self.assertNotEqual('None', parsed_url.hostname)
self.assertIn(parsed_url.scheme, valid_scheme)
@testtools.skipUnless(CONF.compute_feature_enabled.vnc_console,
'VNC Console feature is disabled')
@test.attr(type='gate')
@@ -429,6 +436,35 @@ class ServerActionsV3Test(base.BaseV3ComputeTest):
for console_type in console_types:
resp, body = self.servers_client.get_vnc_console(self.server_id,
console_type)
self.assertEqual(200, resp.status)
self.assertEqual(
200, resp.status,
"Failed to get Console Type: %s" % (console_type))
self.assertEqual(console_type, body['type'])
self.assertNotEqual('', body['url'])
self._validate_url(body['url'])
@testtools.skipUnless(CONF.compute_feature_enabled.spice_console,
'Spice Console feature is disabled.')
@test.attr(type='gate')
def test_get_spice_console(self):
# Get the Spice console of type "spice-html5"
console_type = 'spice-html5'
resp, body = self.servers_client.get_spice_console(self.server_id,
console_type)
self.assertEqual(200, resp.status)
self.assertEqual(console_type, body['type'])
self.assertNotEqual('', body['url'])
self._validate_url(body['url'])
@testtools.skipUnless(CONF.compute_feature_enabled.rdp_console,
'RDP Console feature is disabled.')
@test.attr(type='gate')
def test_get_rdp_console(self):
# Get the RDP console of type "rdp-html5"
console_type = 'rdp-html5'
resp, body = self.servers_client.get_rdp_console(self.server_id,
console_type)
self.assertEqual(200, resp.status)
self.assertEqual(console_type, body['type'])
self.assertNotEqual('', body['url'])
self._validate_url(body['url'])

View File

@@ -295,7 +295,15 @@ ComputeFeaturesGroup = [
cfg.BoolOpt('vnc_console',
default=False,
help='Enable VNC console. This configuration value should '
'be same as [nova.vnc]->vnc_enabled in nova.conf')
'be same as [nova.vnc]->vnc_enabled in nova.conf'),
cfg.BoolOpt('spice_console',
default=False,
help='Enable Spice console. This configuration value should '
'be same as [nova.spice]->enabled in nova.conf'),
cfg.BoolOpt('rdp_console',
default=False,
help='Enable RDP console. This configuration value should '
'be same as [nova.rdp]->enabled in nova.conf')
]

View File

@@ -468,3 +468,13 @@ class ServersV3ClientJSON(rest_client.RestClient):
def inject_network_info(self, server_id, **kwargs):
"""Inject the Network Info into server"""
return self.action(server_id, 'inject_network_info', None, **kwargs)
def get_spice_console(self, server_id, console_type):
"""Get URL of Spice console."""
return self.action(server_id, "get_spice_console"
"console", type=console_type)
def get_rdp_console(self, server_id, console_type):
"""Get URL of RDP console."""
return self.action(server_id, "get_rdp_console"
"console", type=console_type)