in ambari-infra-solr-client/src/main/python/migrationHelper.py [0:0]
def create_batch_command(command, hosts, cluster, service_name, component_name, interval_seconds, fault_tolerance, context):
request_schedules = []
request_schedule = {}
batch = []
requests = []
order_id = 1
all = len(hosts)
for host in hosts:
request = {}
request['order_id'] = order_id
request['type'] = 'POST'
request['uri'] = "/clusters/{0}/requests".format(cluster)
request_body_info = {}
request_info = {}
request_info["context"] = context + " ({0} of {1})".format(order_id, all)
request_info["command"] = command
order_id = order_id + 1
resource_filter = {}
resource_filter["service_name"] = service_name
resource_filter["component_name"] = component_name
resource_filter["hosts"] = host
resource_filters = []
resource_filters.append(resource_filter)
request_body_info["Requests/resource_filters"] = resource_filters
request_body_info['RequestInfo'] = request_info
request['RequestBodyInfo'] = request_body_info
requests.append(request)
batch_requests_item = {}
batch_requests_item['requests'] = requests
batch.append(batch_requests_item)
batch_settings_item = {}
batch_settings = {}
batch_settings['batch_separation_in_seconds'] = interval_seconds
batch_settings['task_failure_tolerance'] = fault_tolerance
batch_settings_item['batch_settings'] = batch_settings
batch.append(batch_settings_item)
request_schedule['batch'] = batch
request_schedule_item = {}
request_schedule_item['RequestSchedule'] = request_schedule
request_schedules.append(request_schedule_item)
return request_schedules