User can add all outofsync tasks to whitelist

Change-Id: Ic73913d72ed5eaecb8a44fad47413ad47d94287d
This commit is contained in:
Dmitry Ukov 2017-01-24 13:29:43 +04:00
parent d55fae0cca
commit 27b2574984
2 changed files with 42 additions and 0 deletions

View File

@ -355,3 +355,44 @@ class WhitelistRuleAddFromFile(lister.Lister, command.Command):
ret = data_utils.get_display_data_multi(self.columns, ret)
return (self.columns, ret)
class WhitelistRuleAddAll(OutOfSyncResources):
columns = (
'id',
'fuel_task',
'rule'
)
def take_action(self, parsed_args):
task_id = parsed_args.task
if not task_id:
all_tasks = Task.get_all()
env_tasks = filter(
lambda t: t.data['cluster'] == parsed_args.env and
t.data['name'] == 'dry_run_deployment',
all_tasks)
env_tasks.sort(key=lambda t: t.data['time_start'])
fuel_task = env_tasks[-1]
else:
fuel_task = Task(task_id)
env_id = fuel_task.data['cluster']
changes = Audit.get_outofsync(fuel_task)
remap = lambda x: {
'fuel_task': x['task_id'],
'rule': x['resource'][:254]
}
remap_changes = map(remap, changes)
uniq_data = set(map(lambda x: tuple(x.items()), remap_changes))
data = map(lambda x: dict(x), uniq_data)
ret = fc_client.post_request(
'/clusters/{env}/changes-whitelist/'.format(env=env_id),
data
)
ret = data_utils.get_display_data_multi(self.columns, ret)
return (self.columns, ret)

View File

@ -35,3 +35,4 @@ fuelclient:
audit_whitelist_add = fuel_external_git.fuelclient_audit:WhitelistRuleAdd
audit_whitelist_load_fromfile = fuel_external_git.fuelclient_audit:WhitelistRuleAddFromFile
audit_whitelist_delete = fuel_external_git.fuelclient_audit:WhitelistRuleDelete
audit_whitelist_load_all = fuel_external_git.fuelclient_audit:WhitelistRuleAddAll