def create_task(client, job_id, json_file=None, task_id=None, command_line=None, resource_files=None, environment_settings=None, affinity_info=None, max_wall_clock_time=None, retention_time=None, max_task_retry_count=None, application_package_references=None): def action(): if task is not None: client.add(job_id=job_id, task=task) return client.get(job_id=job_id, task_id=task.id) submitted_tasks = [] for i in range(0, len(tasks), MAX_TASKS_PER_REQUEST): submission = client.add_collection( job_id=job_id, value=tasks[i:i + MAX_TASKS_PER_REQUEST]) submitted_tasks.extend(submission.value) # pylint: disable=no-member return submitted_tasks task = None tasks = [] if json_file: with open(json_file) as f: json_obj = json.load(f) try: task = client._deserialize( # pylint: disable=protected-access 'TaskAddParameter', json_obj) except DeserializationError: try: tasks = client._deserialize( # pylint: disable=protected-access '[TaskAddParameter]', json_obj) except DeserializationError: raise ValueError( "JSON file '{}' is not formatted correctly.".format( json_file)) else: if command_line is None or task_id is None: raise ValueError( "Missing required arguments.\nEither --json-file, " "or both --task-id and --command-line must be specified.") task = TaskAddParameter( task_id, command_line, resource_files=resource_files, environment_settings=environment_settings, affinity_info=affinity_info, application_package_references=application_package_references) if max_wall_clock_time is not None or retention_time is not None \ or max_task_retry_count is not None: task.constraints = TaskConstraints( max_wall_clock_time=max_wall_clock_time, retention_time=retention_time, max_task_retry_count=max_task_retry_count) return _handle_batch_exception(action)
def create_task(client, job_id, json_file=None, task_id=None, command_line=None, resource_files=None, environment_settings=None, affinity_id=None, max_wall_clock_time=None, retention_time=None, max_task_retry_count=None, application_package_references=None): task = None tasks = [] if json_file: json_obj = get_file_json(json_file) try: task = TaskAddParameter.from_dict(json_obj) except DeserializationError: tasks = [] try: for json_task in json_obj: tasks.append(TaskAddParameter.from_dict(json_task)) except (DeserializationError, TypeError): raise ValueError( "JSON file '{}' is not formatted correctly.".format( json_file)) else: if command_line is None or task_id is None: raise ValueError( "Missing required arguments.\nEither --json-file, " "or both --task-id and --command-line must be specified.") task = TaskAddParameter( task_id, command_line, resource_files=resource_files, environment_settings=environment_settings, affinity_info=AffinityInformation(affinity_id) if affinity_id else None, application_package_references=application_package_references) if max_wall_clock_time is not None or retention_time is not None \ or max_task_retry_count is not None: task.constraints = TaskConstraints( max_wall_clock_time=max_wall_clock_time, retention_time=retention_time, max_task_retry_count=max_task_retry_count) if task is not None: client.add(job_id=job_id, task=task) return client.get(job_id=job_id, task_id=task.id) submitted_tasks = [] for i in range(0, len(tasks), MAX_TASKS_PER_REQUEST): submission = client.add_collection(job_id=job_id, value=tasks[i:i + MAX_TASKS_PER_REQUEST]) submitted_tasks.extend(submission.value) # pylint: disable=no-member return submitted_tasks
def create_task( client, job_id, json_file=None, task_id=None, command_line=None, # pylint:disable=too-many-arguments resource_files=None, environment_settings=None, affinity_info=None, max_wall_clock_time=None, retention_time=None, max_task_retry_count=None, application_package_references=None): def action(): if task is not None: client.add(job_id=job_id, task=task) return client.get(job_id=job_id, task_id=task.id) else: result = client.add_collection(job_id=job_id, value=tasks) return result.value task = None if json_file: with open(json_file) as f: json_obj = json.load(f) try: task = client._deserialize('TaskAddParameter', json_obj) # pylint: disable=protected-access except DeserializationError: try: tasks = client._deserialize('[TaskAddParameter]', json_obj) # pylint: disable=protected-access except DeserializationError: raise ValueError( "JSON file '{}' is not in reqired format.".format( json_file)) else: if command_line is None or task_id is None: raise ValueError( "Missing required arguments.\nEither --json-file, " "or both --task-id and --command-line must be specified.") task = TaskAddParameter( task_id, command_line, resource_files=resource_files, environment_settings=environment_settings, affinity_info=affinity_info, application_package_references=application_package_references) if max_wall_clock_time is not None or retention_time is not None \ or max_task_retry_count is not None: task.constraints = TaskConstraints( max_wall_clock_time=max_wall_clock_time, retention_time=retention_time, max_task_retry_count=max_task_retry_count) return _handle_batch_exception(action)