Merge "compute: Fix weird option definition for 'server ssh'"
This commit is contained in:
commit
ba935590f4
@ -4462,51 +4462,26 @@ class SshServer(command.Command):
|
||||
help=_('Server (name or ID)'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'--login',
|
||||
'--login', '-l',
|
||||
metavar='<login-name>',
|
||||
help=_('Login name (ssh -l option)'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'-l',
|
||||
dest='login',
|
||||
metavar='<login-name>',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
parser.add_argument(
|
||||
'--port',
|
||||
'--port', '-p',
|
||||
metavar='<port>',
|
||||
type=int,
|
||||
help=_('Destination port (ssh -p option)'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'-p',
|
||||
metavar='<port>',
|
||||
dest='port',
|
||||
type=int,
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
parser.add_argument(
|
||||
'--identity',
|
||||
'--identity', '-i',
|
||||
metavar='<keyfile>',
|
||||
help=_('Private key file (ssh -i option)'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'-i',
|
||||
metavar='<filename>',
|
||||
dest='identity',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
parser.add_argument(
|
||||
'--option',
|
||||
'--option', '-o',
|
||||
metavar='<config-options>',
|
||||
help=_('Options in ssh_config(5) format (ssh -o option)'),
|
||||
)
|
||||
parser.add_argument(
|
||||
'-o',
|
||||
metavar='<option>',
|
||||
dest='option',
|
||||
help=argparse.SUPPRESS,
|
||||
)
|
||||
ip_group = parser.add_mutually_exclusive_group()
|
||||
ip_group.add_argument(
|
||||
'-4',
|
||||
|
@ -8265,6 +8265,83 @@ class TestServerShow(TestServer):
|
||||
exceptions.CommandError, self.cmd.take_action, parsed_args)
|
||||
|
||||
|
||||
@mock.patch('openstackclient.compute.v2.server.os.system')
|
||||
class TestServerSsh(TestServer):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
||||
self.cmd = server.SshServer(self.app, None)
|
||||
|
||||
self.app.client_manager.auth_ref = mock.Mock()
|
||||
self.app.client_manager.auth_ref.username = 'cloud'
|
||||
|
||||
self.attrs = {
|
||||
'addresses': {
|
||||
'public': [
|
||||
{
|
||||
'addr': '192.168.1.30',
|
||||
'OS-EXT-IPS-MAC:mac_addr': '00:0c:29:0d:11:74',
|
||||
'OS-EXT-IPS:type': 'fixed',
|
||||
'version': 4,
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
self.server = compute_fakes.FakeServer.create_one_server(
|
||||
attrs=self.attrs, methods=self.methods,
|
||||
)
|
||||
self.servers_mock.get.return_value = self.server
|
||||
|
||||
def test_server_ssh_no_opts(self, mock_exec):
|
||||
arglist = [
|
||||
self.server.name,
|
||||
]
|
||||
verifylist = [
|
||||
('server', self.server.name),
|
||||
('login', None),
|
||||
('port', None),
|
||||
('identity', None),
|
||||
('option', None),
|
||||
('ipv4', False),
|
||||
('ipv6', False),
|
||||
('address_type', 'public'),
|
||||
('verbose', False),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
result = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.assertIsNone(result)
|
||||
mock_exec.assert_called_once_with('ssh cloud@192.168.1.30')
|
||||
|
||||
def test_server_ssh_opts(self, mock_exec):
|
||||
arglist = [
|
||||
self.server.name,
|
||||
'-l', 'username',
|
||||
'-p', '2222',
|
||||
]
|
||||
verifylist = [
|
||||
('server', self.server.name),
|
||||
('login', 'username'),
|
||||
('port', 2222),
|
||||
('identity', None),
|
||||
('option', None),
|
||||
('ipv4', False),
|
||||
('ipv6', False),
|
||||
('address_type', 'public'),
|
||||
('verbose', False),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
result = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.assertIsNone(result)
|
||||
mock_exec.assert_called_once_with(
|
||||
'ssh -p 2222 username@192.168.1.30'
|
||||
)
|
||||
|
||||
|
||||
class TestServerStart(TestServer):
|
||||
|
||||
def setUp(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user