diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-02-15 05:03:58 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-02-15 05:03:58 +0000 |
commit | 004287481285fba497ca16891f82643f83cfca9b (patch) | |
tree | 8426332a4b1d068e9ac74a81a8987a0251600fa5 | |
parent | 265a6ead1b420a813c3ee04c8948c601ef038dfa (diff) | |
parent | 55249f777cc13e7e6cf3440023cf543ccdca176d (diff) | |
download | python-novaclient-004287481285fba497ca16891f82643f83cfca9b.tar.gz |
Merge "Adds support for the get_rdp_console API"
-rw-r--r-- | novaclient/tests/v1_1/fakes.py | 2 | ||||
-rw-r--r-- | novaclient/tests/v1_1/test_servers.py | 8 | ||||
-rw-r--r-- | novaclient/v1_1/servers.py | 19 | ||||
-rw-r--r-- | novaclient/v1_1/shell.py | 17 | ||||
-rw-r--r-- | novaclient/v3/shell.py | 17 |
5 files changed, 63 insertions, 0 deletions
diff --git a/novaclient/tests/v1_1/fakes.py b/novaclient/tests/v1_1/fakes.py index aa8f2414..e4fa4f61 100644 --- a/novaclient/tests/v1_1/fakes.py +++ b/novaclient/tests/v1_1/fakes.py @@ -598,6 +598,8 @@ class FakeHTTPClient(base_client.HTTPClient): assert list(body[action]) == ['type'] elif action == 'os-getSPICEConsole': assert list(body[action]) == ['type'] + elif action == 'os-getRDPConsole': + assert list(body[action]) == ['type'] elif action == 'os-migrateLive': assert set(body[action].keys()) == set(['host', 'block_migration', diff --git a/novaclient/tests/v1_1/test_servers.py b/novaclient/tests/v1_1/test_servers.py index ac30df18..a48204c1 100644 --- a/novaclient/tests/v1_1/test_servers.py +++ b/novaclient/tests/v1_1/test_servers.py @@ -510,6 +510,14 @@ class ServersTest(utils.TestCase): cs.servers.get_spice_console(s, 'fake') cs.assert_called('POST', '/servers/1234/action') + def test_get_rdp_console(self): + s = cs.servers.get(1234) + s.get_rdp_console('fake') + cs.assert_called('POST', '/servers/1234/action') + + cs.servers.get_rdp_console(s, 'fake') + cs.assert_called('POST', '/servers/1234/action') + def test_create_image(self): s = cs.servers.get(1234) s.create_image('123') diff --git a/novaclient/v1_1/servers.py b/novaclient/v1_1/servers.py index 0553f140..0ae5d166 100644 --- a/novaclient/v1_1/servers.py +++ b/novaclient/v1_1/servers.py @@ -76,6 +76,14 @@ class Server(base.Resource): """ return self.manager.get_spice_console(self, console_type) + def get_rdp_console(self, console_type): + """ + Get rdp console for a Server. + + :param console_type: Type of console ('rdp-html5') + """ + return self.manager.get_rdp_console(self, console_type) + def get_password(self, private_key=None): """ Get password for a Server. @@ -644,6 +652,17 @@ class ServerManager(base.BootingManagerWithFind): return self._action('os-getSPICEConsole', server, {'type': console_type})[1] + def get_rdp_console(self, server, console_type): + """ + Get a rdp console for an instance + + :param server: The :class:`Server` (or its ID) to add an IP to. + :param console_type: Type of rdp console to get ('rdp-html5') + """ + + return self._action('os-getRDPConsole', server, + {'type': console_type})[1] + def get_password(self, server, private_key=None): """ Get password for an instance diff --git a/novaclient/v1_1/shell.py b/novaclient/v1_1/shell.py index ee667957..82e2bba1 100644 --- a/novaclient/v1_1/shell.py +++ b/novaclient/v1_1/shell.py @@ -1872,6 +1872,23 @@ def do_get_spice_console(cs, args): @utils.arg('server', metavar='<server>', help='Name or ID of server.') +@utils.arg('console_type', + metavar='<console-type>', + help='Type of rdp console ("rdp-html5").') +def do_get_rdp_console(cs, args): + """Get a rdp console to a server.""" + server = _find_server(cs, args.server) + data = server.get_rdp_console(args.console_type) + + class RDPConsole: + def __init__(self, console_dict): + self.type = console_dict['type'] + self.url = console_dict['url'] + + utils.print_list([RDPConsole(data['console'])], ['Type', 'Url']) + + +@utils.arg('server', metavar='<server>', help='Name or ID of server.') @utils.arg('private_key', metavar='<private-key>', help='Private key (used locally to decrypt password) (Optional). ' diff --git a/novaclient/v3/shell.py b/novaclient/v3/shell.py index f81264ed..3d4ee126 100644 --- a/novaclient/v3/shell.py +++ b/novaclient/v3/shell.py @@ -1479,6 +1479,23 @@ def do_get_spice_console(cs, args): @utils.arg('server', metavar='<server>', help='Name or ID of server.') +@utils.arg('console_type', + metavar='<console-type>', + help='Type of rdp console ("rdp-html5").') +def do_get_rdp_console(cs, args): + """Get a rdp console to a server.""" + server = _find_server(cs, args.server) + data = server.get_rdp_console(args.console_type) + + class RDPConsole: + def __init__(self, console_dict): + self.type = console_dict['type'] + self.url = console_dict['url'] + + utils.print_list([RDPConsole(data['console'])], ['Type', 'Url']) + + +@utils.arg('server', metavar='<server>', help='Name or ID of server.') @utils.arg('private_key', metavar='<private-key>', help='Private key (used locally to decrypt password) (Optional). ' |