Add --active parameter to kingbird sync list.
Currently, python-kingbirdclient doesnt have the option to list the active jobs.This change introduces a new option to list the active jobs. Added test-cases for the same. Closes-Bug: #1694436 Change-Id: I8938cfa60558c1008614ae8a8472486c1896df34
This commit is contained in:
parent
d0e23eac23
commit
7fdb84c9c6
@ -43,9 +43,11 @@ class sync_manager(base.ResourceManager):
|
||||
url = '/%s/os-sync/' % tenant
|
||||
return self.resource_sync_create(url, data)
|
||||
|
||||
def list_sync_jobs(self):
|
||||
def list_sync_jobs(self, action=None):
|
||||
tenant = self.http_client.project_id
|
||||
url = '/%s/os-sync/' % tenant
|
||||
if action:
|
||||
url = '/%s/os-sync/%s' % (tenant, action)
|
||||
return self._resource_sync_list(url)
|
||||
|
||||
def sync_job_detail(self, job_id):
|
||||
|
@ -148,9 +148,24 @@ class SyncList(base.KingbirdLister):
|
||||
def _get_format_function(self):
|
||||
return format
|
||||
|
||||
def get_parser(self, parsed_args):
|
||||
parser = super(SyncList, self).get_parser(parsed_args)
|
||||
|
||||
parser.add_argument(
|
||||
'--active',
|
||||
action='store_true',
|
||||
help='View the list of active jobs.'
|
||||
)
|
||||
|
||||
return parser
|
||||
|
||||
def _get_resources(self, parsed_args):
|
||||
active = parsed_args.active
|
||||
action = None
|
||||
kingbird_client = self.app.client_manager.sync_engine
|
||||
return kingbird_client.sync_manager.list_sync_jobs()
|
||||
if active:
|
||||
action = 'active'
|
||||
return kingbird_client.sync_manager.list_sync_jobs(action)
|
||||
|
||||
|
||||
class SyncShow(base.KingbirdLister):
|
||||
|
@ -24,7 +24,8 @@ from kingbirdclient.tests import base
|
||||
TIME_NOW = timeutils.utcnow().isoformat()
|
||||
ID = uuidutils.generate_uuid()
|
||||
ID_1 = uuidutils.generate_uuid()
|
||||
FAKE_STATUS = 'IN_PROGRESS'
|
||||
FAKE_STATUS = 'SUCCESS'
|
||||
ACTIVE_FAKE_STATUS = 'IN_PROGRESS'
|
||||
FAKE_RESOURCE = 'fake_item'
|
||||
FAKE_SOURCE_REGION = 'fake_region_1'
|
||||
FAKE_TARGET_REGION = 'fake_region_2'
|
||||
@ -37,11 +38,23 @@ RESOURCE_DICT = {
|
||||
'UPDATED_AT': TIME_NOW
|
||||
}
|
||||
|
||||
ACTIVE_RESOURCE_DICT = {
|
||||
'ID': ID,
|
||||
'STATUS': ACTIVE_FAKE_STATUS,
|
||||
'CREATED_AT': TIME_NOW,
|
||||
'UPDATED_AT': TIME_NOW
|
||||
}
|
||||
|
||||
SYNCMANAGER = sm.Resource(mock, id=RESOURCE_DICT['ID'],
|
||||
status=RESOURCE_DICT['STATUS'],
|
||||
created_at=RESOURCE_DICT['CREATED_AT'],
|
||||
updated_at=RESOURCE_DICT['UPDATED_AT'])
|
||||
|
||||
ACTIVE_SYNCMANAGER = sm.Resource(mock, id=ACTIVE_RESOURCE_DICT['ID'],
|
||||
status=ACTIVE_RESOURCE_DICT['STATUS'],
|
||||
created_at=ACTIVE_RESOURCE_DICT['CREATED_AT'],
|
||||
updated_at=ACTIVE_RESOURCE_DICT['UPDATED_AT'])
|
||||
|
||||
DETAIL_RESOURCE_DICT = {
|
||||
'RESOURCE': FAKE_RESOURCE,
|
||||
'SOURCE_REGION': FAKE_SOURCE_REGION,
|
||||
@ -80,6 +93,19 @@ class TestCLISyncManagerV1(base.BaseCommandTest):
|
||||
self.assertEqual((('<none>', '<none>', '<none>', '<none>'),),
|
||||
actual_call[1])
|
||||
|
||||
def test_active_sync_jobs_list(self):
|
||||
self.client.sync_manager.list_sync_jobs.\
|
||||
return_value = [ACTIVE_SYNCMANAGER]
|
||||
actual_call = self.call(sync_cmd.SyncList, app_args=['--active'])
|
||||
self.assertEqual([(ID, ACTIVE_FAKE_STATUS, TIME_NOW, TIME_NOW)],
|
||||
actual_call[1])
|
||||
|
||||
def test_active_sync_jobs_negative(self):
|
||||
self.client.sync_manager.list_sync_jobs.\
|
||||
return_value = [ACTIVE_SYNCMANAGER]
|
||||
self.assertRaises(SystemExit, self.call,
|
||||
sync_cmd.SyncList, app_args=['--fake'])
|
||||
|
||||
def test_delete_sync_job_with_job_id(self):
|
||||
self.call(sync_cmd.SyncDelete, app_args=[ID])
|
||||
self.client.sync_manager.delete_sync_job.\
|
||||
|
Loading…
x
Reference in New Issue
Block a user