summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorRui Chen <chenrui.momo@gmail.com>2016-07-21 15:30:01 +0800
committerRui Chen <chenrui.momo@gmail.com>2016-07-21 15:43:01 +0800
commitcf20225347766240a2ebb155e6e46b85f84a3ddc (patch)
tree7cc6946015e5e120cef01c96eede7812517cce05 /openstackclient
parent360853b51fdb261ef435398436fd39ebd3169ee0 (diff)
downloadpython-openstackclient-cf20225347766240a2ebb155e6e46b85f84a3ddc.tar.gz
Support to get server rdp/serial/mks type console url
The patch add the support to get server rdp/serial/mks type console url, that make osc capability equal with current nova server side feature. Change-Id: I3dee2531c68563725187c8251d5ea8d4c02cca0c Closes-Bug: #1605088
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/console.py27
-rw-r--r--openstackclient/tests/compute/v2/test_console.py47
2 files changed, 74 insertions, 0 deletions
diff --git a/openstackclient/compute/v2/console.py b/openstackclient/compute/v2/console.py
index 74bed441..02be99d5 100644
--- a/openstackclient/compute/v2/console.py
+++ b/openstackclient/compute/v2/console.py
@@ -96,6 +96,27 @@ class ShowConsoleURL(command.ShowOne):
const='spice-html5',
help=_("Show SPICE console URL")
)
+ type_group.add_argument(
+ '--rdp',
+ dest='url_type',
+ action='store_const',
+ const='rdp-html5',
+ help=_("Show RDP console URL"),
+ )
+ type_group.add_argument(
+ '--serial',
+ dest='url_type',
+ action='store_const',
+ const='serial',
+ help=_("Show serial console URL"),
+ )
+ type_group.add_argument(
+ '--mks',
+ dest='url_type',
+ action='store_const',
+ const='webmks',
+ help=_("Show WebMKS console URL"),
+ )
return parser
def take_action(self, parsed_args):
@@ -110,6 +131,12 @@ class ShowConsoleURL(command.ShowOne):
data = server.get_vnc_console(parsed_args.url_type)
if parsed_args.url_type in ['spice-html5']:
data = server.get_spice_console(parsed_args.url_type)
+ if parsed_args.url_type in ['rdp-html5']:
+ data = server.get_rdp_console(parsed_args.url_type)
+ if parsed_args.url_type in ['serial']:
+ data = server.get_serial_console(parsed_args.url_type)
+ if parsed_args.url_type in ['webmks']:
+ data = server.get_mks_console()
if not data:
return ({}, {})
diff --git a/openstackclient/tests/compute/v2/test_console.py b/openstackclient/tests/compute/v2/test_console.py
index 6be08126..fe4f26ae 100644
--- a/openstackclient/tests/compute/v2/test_console.py
+++ b/openstackclient/tests/compute/v2/test_console.py
@@ -147,3 +147,50 @@ class TestConsoleUrlShow(TestConsole):
old_fake_server.get_vnc_console.assert_called_once_with('novnc')
self.assertEqual(old_columns, columns)
self.assertEqual(old_data, data)
+
+ def test_console_url_show_with_rdp(self):
+ arglist = [
+ '--rdp',
+ 'foo_vm',
+ ]
+ verifylist = [
+ ('url_type', 'rdp-html5'),
+ ('server', 'foo_vm'),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ columns, data = self.cmd.take_action(parsed_args)
+ self.fake_server.get_rdp_console.assert_called_once_with(
+ 'rdp-html5')
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, data)
+
+ def test_console_url_show_with_serial(self):
+ arglist = [
+ '--serial',
+ 'foo_vm',
+ ]
+ verifylist = [
+ ('url_type', 'serial'),
+ ('server', 'foo_vm'),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ columns, data = self.cmd.take_action(parsed_args)
+ self.fake_server.get_serial_console.assert_called_once_with(
+ 'serial')
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, data)
+
+ def test_console_url_show_with_mks(self):
+ arglist = [
+ '--mks',
+ 'foo_vm',
+ ]
+ verifylist = [
+ ('url_type', 'webmks'),
+ ('server', 'foo_vm'),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ columns, data = self.cmd.take_action(parsed_args)
+ self.fake_server.get_mks_console.assert_called_once_with()
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(self.data, data)