Skip to content

Commit eb75c44

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Switch openstack console log show operation to use OpenStackSDK"
2 parents 77a45fe + 74db8dd commit eb75c44

3 files changed

Lines changed: 92 additions & 10 deletions

File tree

openstackclient/compute/v2/console.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,18 @@ def get_parser(self, prog_name):
4444
return parser
4545

4646
def take_action(self, parsed_args):
47-
compute_client = self.app.client_manager.compute
47+
compute_client = self.app.client_manager.sdk_connection.compute
4848

49-
server = utils.find_resource(
50-
compute_client.servers,
51-
parsed_args.server,
49+
server = compute_client.find_server(
50+
name_or_id=parsed_args.server,
51+
ignore_missing=False
5252
)
53-
length = parsed_args.lines
54-
if length:
55-
# NOTE(dtroyer): get_console_output() appears to shortchange the
56-
# output by one line
57-
length += 1
5853

59-
data = server.get_console_output(length=length)
54+
output = compute_client.get_server_console_output(
55+
server.id, length=parsed_args.lines)
56+
data = None
57+
if output:
58+
data = output.get('output', None)
6059

6160
if data and data[-1] != '\n':
6261
data += '\n'

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

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,95 @@
1717

1818
from openstackclient.compute.v2 import console
1919
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
20+
from openstackclient.tests.unit import utils
2021

2122

2223
class TestConsole(compute_fakes.TestComputev2):
2324

2425
def setUp(self):
2526
super(TestConsole, self).setUp()
27+
28+
# SDK mock
29+
self.app.client_manager.sdk_connection = mock.Mock()
30+
self.app.client_manager.sdk_connection.compute = mock.Mock()
31+
self.sdk_client = self.app.client_manager.sdk_connection.compute
32+
self.sdk_client.find_server = mock.Mock()
33+
self.sdk_client.get_server_console_output = mock.Mock()
34+
2635
self.servers_mock = self.app.client_manager.compute.servers
2736
self.servers_mock.reset_mock()
2837

2938

39+
class TestConsoleLog(TestConsole):
40+
_server = compute_fakes.FakeServer.create_one_server()
41+
42+
def setUp(self):
43+
super(TestConsoleLog, self).setUp()
44+
45+
self.sdk_client.find_server.return_value = self._server
46+
47+
self.cmd = console.ShowConsoleLog(self.app, None)
48+
49+
def test_show_no_args(self):
50+
arglist = [
51+
]
52+
verifylist = [
53+
]
54+
self.assertRaises(utils.ParserException,
55+
self.check_parser,
56+
self.cmd,
57+
arglist,
58+
verifylist)
59+
60+
def test_show(self):
61+
arglist = [
62+
'fake_server'
63+
]
64+
verifylist = [
65+
('server', 'fake_server')
66+
]
67+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
68+
69+
output = {
70+
'output': '1st line\n2nd line\n'
71+
}
72+
self.sdk_client.get_server_console_output.return_value = output
73+
self.cmd.take_action(parsed_args)
74+
75+
self.sdk_client.find_server.assert_called_with(
76+
name_or_id='fake_server', ignore_missing=False)
77+
self.sdk_client.get_server_console_output.assert_called_with(
78+
self._server.id,
79+
length=None
80+
)
81+
stdout = self.app.stdout.content
82+
self.assertEqual(stdout[0], output['output'])
83+
84+
def test_show_lines(self):
85+
arglist = [
86+
'fake_server',
87+
'--lines', '15'
88+
]
89+
verifylist = [
90+
('server', 'fake_server'),
91+
('lines', 15)
92+
]
93+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
94+
95+
output = {
96+
'output': '1st line\n2nd line'
97+
}
98+
self.sdk_client.get_server_console_output.return_value = output
99+
self.cmd.take_action(parsed_args)
100+
101+
self.sdk_client.find_server.assert_called_with(
102+
name_or_id='fake_server', ignore_missing=False)
103+
self.sdk_client.get_server_console_output.assert_called_with(
104+
self._server.id,
105+
length=15
106+
)
107+
108+
30109
class TestConsoleUrlShow(TestConsole):
31110

32111
def setUp(self):
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
features:
3+
- |
4+
Switch console logs operation to use SDK

0 commit comments

Comments
 (0)