summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
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)