summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/source/command-objects/console-url.rst12
-rw-r--r--openstackclient/compute/v2/console.py27
-rw-r--r--openstackclient/tests/compute/v2/test_console.py47
-rw-r--r--releasenotes/notes/bug-1605088-fea9347336764469.yaml4
4 files changed, 90 insertions, 0 deletions
diff --git a/doc/source/command-objects/console-url.rst b/doc/source/command-objects/console-url.rst
index 7993a7bf..166d0a9e 100644
--- a/doc/source/command-objects/console-url.rst
+++ b/doc/source/command-objects/console-url.rst
@@ -30,6 +30,18 @@ Show server's remote console URL
Show SPICE console URL
+.. option:: --rdp
+
+ Show RDP console URL
+
+.. option:: --serial
+
+ Show serial console URL
+
+.. option:: --mks
+
+ Show WebMKS console URL
+
.. describe:: <server>
Server to show URL (name or ID)
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)
diff --git a/releasenotes/notes/bug-1605088-fea9347336764469.yaml b/releasenotes/notes/bug-1605088-fea9347336764469.yaml
new file mode 100644
index 00000000..15e0bc45
--- /dev/null
+++ b/releasenotes/notes/bug-1605088-fea9347336764469.yaml
@@ -0,0 +1,4 @@
+---
+features:
+ - Support to get server ``rdp``, ``serial``, ``mks`` type console url.
+ [Bug `1605088 <https://bugs.launchpad.net/python-openstackclient/+bug/1605088>`_]