Merge "Add V3 Test to get Spice & RDP console of server"
This commit is contained in:
@@ -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]
|
||||
|
||||
|
||||
@@ -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'])
|
||||
|
||||
@@ -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')
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user