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
This commit is contained in:
Rui Chen 2016-07-21 15:30:01 +08:00
parent 360853b51f
commit cf20225347
4 changed files with 90 additions and 0 deletions

View File

@ -30,6 +30,18 @@ Show server's remote console URL
Show SPICE 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> .. describe:: <server>
Server to show URL (name or ID) Server to show URL (name or ID)

View File

@ -96,6 +96,27 @@ class ShowConsoleURL(command.ShowOne):
const='spice-html5', const='spice-html5',
help=_("Show SPICE console URL") 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 return parser
def take_action(self, parsed_args): def take_action(self, parsed_args):
@ -110,6 +131,12 @@ class ShowConsoleURL(command.ShowOne):
data = server.get_vnc_console(parsed_args.url_type) data = server.get_vnc_console(parsed_args.url_type)
if parsed_args.url_type in ['spice-html5']: if parsed_args.url_type in ['spice-html5']:
data = server.get_spice_console(parsed_args.url_type) 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: if not data:
return ({}, {}) return ({}, {})

View File

@ -147,3 +147,50 @@ class TestConsoleUrlShow(TestConsole):
old_fake_server.get_vnc_console.assert_called_once_with('novnc') old_fake_server.get_vnc_console.assert_called_once_with('novnc')
self.assertEqual(old_columns, columns) self.assertEqual(old_columns, columns)
self.assertEqual(old_data, data) 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)

View File

@ -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>`_]