Skip to content

Commit ba93559

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "compute: Fix weird option definition for 'server ssh'"
2 parents 724852e + ba69870 commit ba93559

2 files changed

Lines changed: 81 additions & 29 deletions

File tree

openstackclient/compute/v2/server.py

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4462,51 +4462,26 @@ def get_parser(self, prog_name):
44624462
help=_('Server (name or ID)'),
44634463
)
44644464
parser.add_argument(
4465-
'--login',
4465+
'--login', '-l',
44664466
metavar='<login-name>',
44674467
help=_('Login name (ssh -l option)'),
44684468
)
44694469
parser.add_argument(
4470-
'-l',
4471-
dest='login',
4472-
metavar='<login-name>',
4473-
help=argparse.SUPPRESS,
4474-
)
4475-
parser.add_argument(
4476-
'--port',
4470+
'--port', '-p',
44774471
metavar='<port>',
44784472
type=int,
44794473
help=_('Destination port (ssh -p option)'),
44804474
)
44814475
parser.add_argument(
4482-
'-p',
4483-
metavar='<port>',
4484-
dest='port',
4485-
type=int,
4486-
help=argparse.SUPPRESS,
4487-
)
4488-
parser.add_argument(
4489-
'--identity',
4476+
'--identity', '-i',
44904477
metavar='<keyfile>',
44914478
help=_('Private key file (ssh -i option)'),
44924479
)
44934480
parser.add_argument(
4494-
'-i',
4495-
metavar='<filename>',
4496-
dest='identity',
4497-
help=argparse.SUPPRESS,
4498-
)
4499-
parser.add_argument(
4500-
'--option',
4481+
'--option', '-o',
45014482
metavar='<config-options>',
45024483
help=_('Options in ssh_config(5) format (ssh -o option)'),
45034484
)
4504-
parser.add_argument(
4505-
'-o',
4506-
metavar='<option>',
4507-
dest='option',
4508-
help=argparse.SUPPRESS,
4509-
)
45104485
ip_group = parser.add_mutually_exclusive_group()
45114486
ip_group.add_argument(
45124487
'-4',

openstackclient/tests/unit/compute/v2/test_server.py

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8265,6 +8265,83 @@ def test_show_topology_pre_v278(self):
82658265
exceptions.CommandError, self.cmd.take_action, parsed_args)
82668266

82678267

8268+
@mock.patch('openstackclient.compute.v2.server.os.system')
8269+
class TestServerSsh(TestServer):
8270+
8271+
def setUp(self):
8272+
super().setUp()
8273+
8274+
self.cmd = server.SshServer(self.app, None)
8275+
8276+
self.app.client_manager.auth_ref = mock.Mock()
8277+
self.app.client_manager.auth_ref.username = 'cloud'
8278+
8279+
self.attrs = {
8280+
'addresses': {
8281+
'public': [
8282+
{
8283+
'addr': '192.168.1.30',
8284+
'OS-EXT-IPS-MAC:mac_addr': '00:0c:29:0d:11:74',
8285+
'OS-EXT-IPS:type': 'fixed',
8286+
'version': 4,
8287+
},
8288+
],
8289+
},
8290+
}
8291+
self.server = compute_fakes.FakeServer.create_one_server(
8292+
attrs=self.attrs, methods=self.methods,
8293+
)
8294+
self.servers_mock.get.return_value = self.server
8295+
8296+
def test_server_ssh_no_opts(self, mock_exec):
8297+
arglist = [
8298+
self.server.name,
8299+
]
8300+
verifylist = [
8301+
('server', self.server.name),
8302+
('login', None),
8303+
('port', None),
8304+
('identity', None),
8305+
('option', None),
8306+
('ipv4', False),
8307+
('ipv6', False),
8308+
('address_type', 'public'),
8309+
('verbose', False),
8310+
]
8311+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
8312+
8313+
result = self.cmd.take_action(parsed_args)
8314+
8315+
self.assertIsNone(result)
8316+
mock_exec.assert_called_once_with('ssh cloud@192.168.1.30')
8317+
8318+
def test_server_ssh_opts(self, mock_exec):
8319+
arglist = [
8320+
self.server.name,
8321+
'-l', 'username',
8322+
'-p', '2222',
8323+
]
8324+
verifylist = [
8325+
('server', self.server.name),
8326+
('login', 'username'),
8327+
('port', 2222),
8328+
('identity', None),
8329+
('option', None),
8330+
('ipv4', False),
8331+
('ipv6', False),
8332+
('address_type', 'public'),
8333+
('verbose', False),
8334+
]
8335+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
8336+
8337+
result = self.cmd.take_action(parsed_args)
8338+
8339+
self.assertIsNone(result)
8340+
mock_exec.assert_called_once_with(
8341+
'ssh -p 2222 username@192.168.1.30'
8342+
)
8343+
8344+
82688345
class TestServerStart(TestServer):
82698346

82708347
def setUp(self):

0 commit comments

Comments
 (0)