Skip to content

Commit feb881d

Browse files
mihaelabalutoiuDany9966
authored andcommitted
Fix include_task_info for transfer show --show-instances-data
The transfer's `info` is only returned with `include_task_info=true`, which the CLI never sent, so `--show-instances-data` failed with "ERROR: info". Add an `include_task_info` flag to TransferManager.get and set it when the option is passed.
1 parent 00e9f87 commit feb881d

4 files changed

Lines changed: 23 additions & 4 deletions

File tree

coriolisclient/cli/transfers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,8 @@ def get_parser(self, prog_name):
308308

309309
def take_action(self, args):
310310
coriolis = self.app.client_manager.coriolis
311-
transfer = coriolis.transfers.get(args.id)
311+
transfer = coriolis.transfers.get(
312+
args.id, include_task_info=args.show_instances_data)
312313
executions = coriolis.transfer_executions.list(
313314
args.id,
314315
limit=TRANSFER_SHOW_EXECUTIONS_LIMIT,

coriolisclient/tests/cli/test_transfers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,9 @@ def test_take_action(self, mock_formatter_class):
340340
mock_formatter.get_formatted_entity.return_value,
341341
result
342342
)
343-
mock_get.assert_called_once_with(mock.sentinel.id)
343+
mock_get.assert_called_once_with(
344+
mock.sentinel.id,
345+
include_task_info=mock.sentinel.show_instances_data)
344346
mock_list.assert_called_once_with(
345347
mock.sentinel.id,
346348
limit=transfers.TRANSFER_SHOW_EXECUTIONS_LIMIT,

coriolisclient/tests/v1/test_transfers.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,19 @@ def test_get(self, mock_get):
135135
mock_get.assert_called_once_with(
136136
"/transfers/%s" % mock.sentinel.transfer, "transfer")
137137

138+
@mock.patch.object(transfers.TransferManager, "_get")
139+
def test_get_with_task_info(self, mock_get):
140+
result = self.transfer.get(
141+
mock.sentinel.transfer, include_task_info=True)
142+
143+
self.assertEqual(
144+
mock_get.return_value,
145+
result
146+
)
147+
mock_get.assert_called_once_with(
148+
"/transfers/%s?include_task_info=true" % mock.sentinel.transfer,
149+
"transfer")
150+
138151
@mock.patch.object(transfers.TransferManager, "_post")
139152
def test_create(self, mock_post):
140153
expected_data = {

coriolisclient/v1/transfers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,11 @@ def list(self, detail=False, marker=None, limit=None,
6969
path = "%s/detail" % path
7070
return self._list(path, 'transfers', query=query)
7171

72-
def get(self, transfer):
73-
return self._get('/transfers/%s' % base.getid(transfer), 'transfer')
72+
def get(self, transfer, include_task_info=False):
73+
url = '/transfers/%s' % base.getid(transfer)
74+
if include_task_info:
75+
url += '?include_task_info=true'
76+
return self._get(url, 'transfer')
7477

7578
def create(self, origin_endpoint_id, destination_endpoint_id,
7679
source_environment, destination_environment, instances,

0 commit comments

Comments
 (0)