def get_replacement_summary(request, cluster_name, event, current_capacity): host_ids = event.get('host_ids') state = event.get('state') status = event.get('status') progress_type = 'success' if status in ['SUCCEEDING', 'SUCCEEDED' ] else 'danger' if not host_ids: num_finished_host_ids = 0 else: num_finished_host_ids = len(host_ids.split(',')) if state == 'COMPLETED': if status == 'SUCCEEDED': # successful succeeded = num_finished_host_ids progress_rate = 100 msg = event.get('error_message', '') return { 'id': event.get('id'), 'state': state, 'status': status, 'startDate': event.get('start_time'), 'lastUpdateDate': event.get('last_worked_on'), 'progressType': progress_type, 'progressTip': 'Among total {} hosts, {} successfully replaced and {} are pending' .format(succeeded, succeeded, 0), 'successRatePercentage': progress_rate, 'successRate': '{}% ({}/{})'.format(progress_rate, succeeded, succeeded), 'description': msg } else: # failed succeeded = num_finished_host_ids progress_rate = succeeded * 100 / current_capacity msg = event.get('error_message', '') return { 'id': event.get('id'), 'state': state, 'status': status, 'startDate': event.get('start_time'), 'lastUpdateDate': event.get('last_worked_on'), 'progressType': progress_type, 'progressTip': 'Among total {} hosts, {} successfully replaced and {} are pending. Reason: {}' .format(current_capacity, succeeded, current_capacity - succeeded, msg), 'successRatePercentage': progress_rate, 'successRate': '{}% ({}/{})'.format(progress_rate, succeeded, current_capacity), 'description': msg } else: # on-going event replaced_and_succeeded_hosts = groups_helper.get_replaced_and_good_hosts( request, cluster_name) succeeded = len(replaced_and_succeeded_hosts) progress_rate = succeeded * 100 / current_capacity # its not necessarily error message on_going_msg = event.get('error_message') return { 'id': event.get('id'), 'state': state, 'status': status, 'startDate': event.get('start_time'), 'lastUpdateDate': event.get('last_worked_on'), 'progressType': progress_type, 'progressTip': 'Among total {} hosts, {} successfully replaced and {} are pending. {}' .format(current_capacity, succeeded, current_capacity - succeeded, on_going_msg), 'successRatePercentage': progress_rate, 'successRate': '{}% ({}/{})'.format(progress_rate, succeeded, current_capacity) }
def get_replacement_summary(request, cluster_name, event, current_capacity): host_ids = event.get('host_ids') state = event.get('state') status = event.get('status') progress_type = 'success' if status in [ 'SUCCEEDING', 'SUCCEEDED'] else 'danger' if not host_ids: num_finished_host_ids = 0 else: num_finished_host_ids = len(host_ids.split(',')) if state == 'COMPLETED': if status == 'SUCCEEDED': # successful succeeded = num_finished_host_ids progress_rate = 100 msg = event.get('error_message', '') return { 'id': event.get('id'), 'state': state, 'status': status, 'startDate': event.get('start_time'), 'lastUpdateDate': event.get('last_worked_on'), 'progressType': progress_type, 'progressTip': 'Among total {} hosts, {} successfully replaced and {} are pending'.format( succeeded, succeeded, 0), 'successRatePercentage': progress_rate, 'successRate': '{}% ({}/{})'.format(progress_rate, succeeded, succeeded), 'description': msg } else: # failed succeeded = num_finished_host_ids progress_rate = succeeded * 100 / current_capacity msg = event.get('error_message', '') return { 'id': event.get('id'), 'state': state, 'status': status, 'startDate': event.get('start_time'), 'lastUpdateDate': event.get('last_worked_on'), 'progressType': progress_type, 'progressTip': 'Among total {} hosts, {} successfully replaced and {} are pending. Reason: {}'.format( current_capacity, succeeded, current_capacity - succeeded, msg), 'successRatePercentage': progress_rate, 'successRate': '{}% ({}/{})'.format(progress_rate, succeeded, current_capacity), 'description': msg } else: # on-going event replaced_and_succeeded_hosts = groups_helper.get_replaced_and_good_hosts( request, cluster_name) succeeded = len(replaced_and_succeeded_hosts) progress_rate = succeeded * 100 / current_capacity # its not necessarily error message on_going_msg = event.get('error_message') return { 'id': event.get('id'), 'state': state, 'status': status, 'startDate': event.get('start_time'), 'lastUpdateDate': event.get('last_worked_on'), 'progressType': progress_type, 'progressTip': 'Among total {} hosts, {} successfully replaced and {} are pending. {}'.format( current_capacity, succeeded, current_capacity - succeeded, on_going_msg), 'successRatePercentage': progress_rate, 'successRate': '{}% ({}/{})'.format(progress_rate, succeeded, current_capacity) }